Search.setIndex({docnames:["autoapi/app/apis/index","autoapi/app/config/index","autoapi/app/config_dev/index","autoapi/app/forms/app_forms/index","autoapi/app/forms/index","autoapi/app/index","autoapi/app/misc_func/index","autoapi/app/models/index","autoapi/app/tests/conftest/index","autoapi/app/tests/index","autoapi/app/tests/test_admin/index","autoapi/app/tests/test_cli/index","autoapi/app/tests/test_fastapi/index","autoapi/app/tests/test_forms/index","autoapi/app/tests/test_models/index","autoapi/app/tests/test_views/index","autoapi/app/views/admin/index","autoapi/app/views/auth/index","autoapi/app/views/error_pages/index","autoapi/app/views/index","autoapi/app/views/main/index","autoapi/index","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["autoapi/app/apis/index.rst","autoapi/app/config/index.rst","autoapi/app/config_dev/index.rst","autoapi/app/forms/app_forms/index.rst","autoapi/app/forms/index.rst","autoapi/app/index.rst","autoapi/app/misc_func/index.rst","autoapi/app/models/index.rst","autoapi/app/tests/conftest/index.rst","autoapi/app/tests/index.rst","autoapi/app/tests/test_admin/index.rst","autoapi/app/tests/test_cli/index.rst","autoapi/app/tests/test_fastapi/index.rst","autoapi/app/tests/test_forms/index.rst","autoapi/app/tests/test_models/index.rst","autoapi/app/tests/test_views/index.rst","autoapi/app/views/admin/index.rst","autoapi/app/views/auth/index.rst","autoapi/app/views/error_pages/index.rst","autoapi/app/views/index.rst","autoapi/app/views/main/index.rst","autoapi/index.rst","index.rst"],objects:{"":{app:[5,0,0,"-"]},"app.apis":{API_User_Details:[0,1,1,""],API_Version:[0,1,1,""]},"app.config":{ADMIN_EMAIL:[1,2,1,""],ADMIN_PASSWORD:[1,2,1,""],GOOGLE_CLIENT_ID:[1,2,1,""],GOOGLE_CLIENT_SECRET:[1,2,1,""],MAIL_BACKEND:[1,2,1,""],MAIL_FROM:[1,2,1,""],MAIL_PASSWORD:[1,2,1,""],MAIL_PORT:[1,2,1,""],MAIL_SERVER:[1,2,1,""],MAIL_USERNAME:[1,2,1,""],MAIL_USE_TLS:[1,2,1,""],SECRET_KEY:[1,2,1,""],SQLALCHEMY_DATABASE_URI:[1,2,1,""],SQLALCHEMY_TRACK_MODIFICATIONS:[1,2,1,""]},"app.config_dev":{ADMIN_EMAIL:[2,2,1,""],ADMIN_PASSWORD:[2,2,1,""],GOOGLE_CLIENT_ID:[2,2,1,""],GOOGLE_CLIENT_SECRET:[2,2,1,""],MAIL_BACKEND:[2,2,1,""],MAIL_FROM:[2,2,1,""],MAIL_PASSWORD:[2,2,1,""],MAIL_PORT:[2,2,1,""],MAIL_SERVER:[2,2,1,""],MAIL_USERNAME:[2,2,1,""],MAIL_USE_TLS:[2,2,1,""],SECRET_KEY:[2,2,1,""],SQLALCHEMY_DATABASE_URI:[2,2,1,""],SQLALCHEMY_TRACK_MODIFICATIONS:[2,2,1,""]},"app.forms":{app_forms:[3,0,0,"-"]},"app.forms.app_forms":{MyForm:[3,3,1,""],UserLogIn:[3,3,1,""],UserSignUp:[3,3,1,""]},"app.forms.app_forms.MyForm":{body:[3,4,1,""],email:[3,4,1,""],name:[3,4,1,""],subject:[3,4,1,""]},"app.forms.app_forms.UserLogIn":{email:[3,4,1,""],password:[3,4,1,""]},"app.forms.app_forms.UserSignUp":{email:[3,4,1,""],first_name:[3,4,1,""],last_name:[3,4,1,""],password:[3,4,1,""]},"app.misc_func":{flash_errors:[6,1,1,""],send:[6,1,1,""],send_async:[6,1,1,""]},"app.models":{User:[7,3,1,""]},"app.models.User":{__tablename__:[7,4,1,""],_password:[7,4,1,""],check_password:[7,5,1,""],confirmation:[7,4,1,""],email:[7,4,1,""],first_name:[7,4,1,""],full_name:[7,5,1,""],get_id:[7,5,1,""],get_role:[7,5,1,""],get_team:[7,5,1,""],is_paid:[7,5,1,""],last_name:[7,4,1,""],login_type:[7,4,1,""],paid:[7,4,1,""],password:[7,5,1,""],role:[7,4,1,""],team:[7,4,1,""]},"app.tests":{conftest:[8,0,0,"-"],test_admin:[10,0,0,"-"],test_cli:[11,0,0,"-"],test_fastapi:[12,0,0,"-"],test_forms:[13,0,0,"-"],test_models:[14,0,0,"-"],test_views:[15,0,0,"-"]},"app.tests.conftest":{app:[8,1,1,""],client:[8,1,1,""]},"app.tests.test_admin":{test_admin:[10,1,1,""]},"app.tests.test_cli":{test_database_commands:[11,1,1,""]},"app.tests.test_fastapi":{fastapi_client:[12,2,1,""],test_fastapi:[12,1,1,""],test_fastapi_user_details:[12,1,1,""]},"app.tests.test_forms":{test_contactus:[13,1,1,""],test_incorrect_forms:[13,1,1,""]},"app.tests.test_models":{test_usermodel:[14,1,1,""]},"app.tests.test_views":{data2check_visitors:[15,2,1,""],test_user_auth_flow:[15,1,1,""],test_visitors:[15,1,1,""],ts:[15,2,1,""]},"app.views":{admin:[16,0,0,"-"],auth:[17,0,0,"-"],error_pages:[18,0,0,"-"],main:[20,0,0,"-"]},"app.views.admin":{ModelView:[16,3,1,""],admin:[16,2,1,""]},"app.views.admin.ModelView":{is_accessible:[16,5,1,""]},"app.views.auth":{confirm_email:[17,1,1,""],login_with_google:[17,1,1,""],login_with_google_auth:[17,1,1,""],logout:[17,1,1,""],register_user:[17,1,1,""],signin_user:[17,1,1,""],ts:[17,2,1,""],unauthorized:[17,1,1,""],user_dashboard:[17,1,1,""]},"app.views.error_pages":{page_forbidden:[18,1,1,""],page_not_found:[18,1,1,""],page_server_error:[18,1,1,""],simulate_500:[18,1,1,""]},"app.views.main":{contact_us:[20,1,1,""],index:[20,1,1,""]},app:{apis:[0,0,0,"-"],app:[5,2,1,""],bcrypt:[5,2,1,""],config:[1,0,0,"-"],config_dev:[2,0,0,"-"],create_database:[5,1,1,""],database_cli:[5,2,1,""],db:[5,2,1,""],delete_database:[5,1,1,""],forms:[4,0,0,"-"],load_user:[5,1,1,""],login_manager:[5,2,1,""],mail:[5,2,1,""],make_superuser_database:[5,1,1,""],misc_func:[6,0,0,"-"],models:[7,0,0,"-"],oauth:[5,2,1,""],tests:[9,0,0,"-"],views:[19,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","data","Python data"],"3":["py","class","Python class"],"4":["py","attribute","Python attribute"],"5":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:data","3":"py:class","4":"py:attribute","5":"py:method"},terms:{"1":21,"500":18,"default":7,"function":16,"import":20,A:20,If:3,The:20,Then:10,To:15,__init__:20,__tablename__:7,_auto:3,_password:7,access:[10,12,16,18],admin:[1,2,5,10,11,19,21],admin_email:[1,2],admin_password:[1,2],all:20,along:15,ani:20,api:[5,22],api_user_detail:0,api_vers:0,app:[21,22],app_form:[4,5,21],appropri:15,async:0,auth:[5,19,21],authent:15,auto:21,autoapi:21,base:[3,7,16],basic:[8,12,20],bcrypt:5,been:20,bodi:[3,6],body_html:6,categori:16,check:[10,12,16],check_password:7,cli:[10,11],client:[8,10,11,12,13,14,15],code:15,com:[1,2],command:[10,11],config:[5,21],config_dev:[5,21],configur:[8,16],confirm:[7,15],confirm_email:17,conftest:[5,9,21],contact:20,contact_u:20,contain:21,contrib:16,coverag:18,creat:[10,15,21],create_databas:5,creation:11,data2check_visitor:15,data:15,databas:[8,11,14,20],database_cli:5,db:[1,2,5,7,12],delete_databas:5,describ:18,detail:16,dictionari:15,doc:16,document:21,dummi:[8,20],e:18,email:[0,3,5,7,15],en:16,endpoint:[12,15,16],error:18,error_pag:[5,19,21],exampl:[1,2],expect:[7,15],explicitli:3,extend:16,fals:[1,2],fastapi:12,fastapi_cli:12,file:[3,18,20],first_nam:[3,7],fixtur:8,flash_error:6,flask:[3,7,15,16],flask_admin:16,flask_login:[7,18],flask_wtf:3,flaskform:3,flow:15,form:[5,6,13,20,21],formdata:3,found:18,full_nam:7,gener:21,get:15,get_id:7,get_rol:7,get_team:7,given:16,google_client_id:[1,2],google_client_secret:[1,2],ha:20,handl:18,have:7,highlight:16,http:16,iamgroot:[1,2],implement:7,index:[20,22],individu:20,inegr:12,initialis:[8,11,16],intern:18,introduct:16,invalid:13,io:16,is_access:16,is_paid:7,kwarg:3,land:20,last_nam:[3,7],latest:16,link:20,load_us:5,log:15,login:7,login_manag:5,login_requir:18,login_typ:7,login_with_googl:17,login_with_google_auth:17,logout:17,mail:5,mail_backend:[1,2],mail_from:[1,2],mail_password:[1,2],mail_port:[1,2],mail_serv:[1,2],mail_use_tl:[1,2],mail_usernam:[1,2],main:[5,19,21],make_superuser_databas:5,menu_class_nam:16,menu_icon_typ:16,menu_icon_valu:16,messag:[6,18],method:7,misc_func:[5,21],model:[5,14,16,21],modelview:16,modul:[9,22],more:16,myform:3,name:[3,16],newli:10,none:[3,16],nout:18,oauth:5,object:7,other:20,our:16,page:[18,20,21,22],page_forbidden:18,page_not_found:18,page_server_error:18,paid:7,pass:3,password:[3,7],path:15,plaintext:7,portal:[10,16],prevent:3,properti:7,provid:7,py:20,pytest:9,rather:20,readthedoc:16,redirect:15,refer:[16,22],register:15,register_us:17,request:3,resourc:18,role:7,run:10,runner:10,s:[10,11,12,13,14,15],search:22,secret_kei:[1,2],see:18,self:[7,16],send:6,send_async:6,server:18,session:16,should:[16,18,20],signin_us:17,simpl:20,simul:[13,18],simulate_500:18,smtp:[1,2],special:8,specif:3,specifi:3,sphinx:21,sqla:16,sqlalchemy_database_uri:[1,2],sqlalchemy_track_modif:[1,2],sqlite:[1,2],static_fold:16,statu:15,str:0,subclass:3,subject:[3,6],submiss:13,superus:[10,16],tchtchtch:[1,2],team:7,test:[1,2,5,18,21],test_admin:[5,9,21],test_cli:[5,9,21],test_contactu:13,test_database_command:11,test_fastapi:[5,9,21],test_fastapi_user_detail:12,test_form:[5,9,21],test_incorrect_form:13,test_model:[5,9,21],test_user_auth_flow:15,test_usermodel:14,test_view:[5,9,21],test_visitor:15,than:20,thi:[3,7,16,18,20,21],thrown:18,tmp:[1,2],token:15,ts:[15,17],unauthor:17,unit:9,url:16,us:[3,8,10,16,18,20],user:[7,11,12,14,15,16,18],user_dashboard:17,userlogin:3,usermixin:7,usersignup:3,valid:[13,20],version:12,view:[5,15,21],visitor:15,vistor:15,we:[8,10],when:18,wtform:3,you:20},titles:["app.apis","app.config","app.config_dev","app.forms.app_forms","app.forms","app","app.misc_func","app.models","app.tests.conftest","app.tests","app.tests.test_admin","app.tests.test_cli","app.tests.test_fastapi","app.tests.test_forms","app.tests.test_models","app.tests.test_views","app.views.admin","app.views.auth","app.views.error_pages","app.views","app.views.main","API Reference","Welcome to SaaS in a Flask\u2019s documentation!"],titleterms:{"class":[3,7,16],"function":[0,5,6,8,10,11,12,13,14,15,17,18,20],admin:16,api:[0,21],app:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],app_form:3,attribut:[5,12,15,16,17],auth:17,config:1,config_dev:2,conftest:8,content:[0,1,2,3,5,6,7,8,10,11,12,13,14,15,16,17,18,20,22],document:22,error_pag:18,flask:22,form:[3,4],indic:22,main:20,misc_func:6,model:7,modul:[0,1,2,3,6,7,8,10,11,12,13,14,15,16,17,18,20],packag:5,refer:21,s:22,saa:22,submodul:[4,5,9,19],subpackag:5,tabl:22,test:[8,9,10,11,12,13,14,15],test_admin:10,test_cli:11,test_fastapi:12,test_form:13,test_model:14,test_view:15,view:[16,17,18,19,20],welcom:22}})