From 357468a941771da8d982679a6b3a853ab080fd35 Mon Sep 17 00:00:00 2001 From: kerem Date: Wed, 11 Oct 2023 16:36:20 +0200 Subject: [PATCH] working database now started on Project --- webinterface/minibase/__init__.py | 2 + .../__pycache__/__init__.cpython-311.pyc | Bin 2404 -> 2489 bytes .../__pycache__/models.cpython-311.pyc | Bin 20299 -> 4059 bytes .../admin/__pycache__/forms.cpython-311.pyc | Bin 5329 -> 6352 bytes .../admin/__pycache__/models.cpython-311.pyc | Bin 0 -> 5549 bytes .../admin/__pycache__/routes.cpython-311.pyc | Bin 6283 -> 8688 bytes webinterface/minibase/admin/forms.py | 21 +- webinterface/minibase/admin/routes.py | 48 +++- .../company/__pycache__/forms.cpython-311.pyc | Bin 3005 -> 3014 bytes .../__pycache__/models.cpython-311.pyc | Bin 0 -> 7027 bytes .../__pycache__/routes.cpython-311.pyc | Bin 3008 -> 3031 bytes .../company/__pycache__/utils.cpython-311.pyc | Bin 1908 -> 2003 bytes webinterface/minibase/company/forms.py | 2 +- webinterface/minibase/company/routes.py | 3 +- webinterface/minibase/company/utils.py | 7 +- .../__pycache__/models.cpython-311.pyc | Bin 0 -> 20619 bytes .../__pycache__/utils.cpython-311.pyc | Bin 5515 -> 5632 bytes .../minibase/{ => database}/countries.sql | 0 .../minibase/{ => database}/models.py | 231 +++++++++--------- webinterface/minibase/database/site.db | Bin 0 -> 290816 bytes webinterface/minibase/database/utils.py | 12 +- .../main/__pycache__/routes.cpython-311.pyc | Bin 2400 -> 2619 bytes webinterface/minibase/main/routes.py | 5 +- .../person/__pycache__/forms.cpython-311.pyc | Bin 3324 -> 3333 bytes .../person/__pycache__/models.cpython-311.pyc | Bin 0 -> 6074 bytes .../person/__pycache__/routes.cpython-311.pyc | Bin 3292 -> 3301 bytes webinterface/minibase/person/forms.py | 2 +- webinterface/minibase/person/routes.py | 2 +- .../posts/__pycache__/routes.cpython-311.pyc | Bin 4492 -> 4501 bytes webinterface/minibase/posts/routes.py | 2 +- webinterface/minibase/project/forms.py | 0 webinterface/minibase/project/routes.py | 0 webinterface/minibase/site.db | Bin 290816 -> 73728 bytes .../admin/company_register_industry.html | 19 ++ .../admin/company_register_legal_entity.html | 19 ++ .../admin/company_register_relation.html | 19 ++ .../admin/person_register_competence.html | 19 ++ .../templates/admin/person_register_role.html | 40 +++ .../templates/admin/status_register.html | 65 +++++ webinterface/minibase/templates/home.html | 26 +- webinterface/minibase/templates/layout.html | 1 + .../users/__pycache__/forms.cpython-311.pyc | Bin 6070 -> 6079 bytes .../users/__pycache__/routes.cpython-311.pyc | Bin 9018 -> 9027 bytes webinterface/minibase/users/forms.py | 2 +- webinterface/minibase/users/routes.py | 2 +- webinterface/prepare.py | 134 ++++++++++ webinterface/run.py | 3 + 47 files changed, 538 insertions(+), 148 deletions(-) create mode 100644 webinterface/minibase/admin/__pycache__/models.cpython-311.pyc create mode 100644 webinterface/minibase/company/__pycache__/models.cpython-311.pyc create mode 100644 webinterface/minibase/database/__pycache__/models.cpython-311.pyc rename webinterface/minibase/{ => database}/countries.sql (100%) rename webinterface/minibase/{ => database}/models.py (91%) create mode 100644 webinterface/minibase/database/site.db create mode 100644 webinterface/minibase/person/__pycache__/models.cpython-311.pyc create mode 100644 webinterface/minibase/project/forms.py create mode 100644 webinterface/minibase/project/routes.py create mode 100644 webinterface/minibase/templates/admin/status_register.html create mode 100644 webinterface/prepare.py diff --git a/webinterface/minibase/__init__.py b/webinterface/minibase/__init__.py index 16b9eb04..785930e7 100644 --- a/webinterface/minibase/__init__.py +++ b/webinterface/minibase/__init__.py @@ -1,5 +1,6 @@ from flask import Flask from flask_sqlalchemy import SQLAlchemy +from sqlalchemy.ext.declarative import declarative_base from flask_bcrypt import Bcrypt from flask_login import LoginManager from flask_mail import Mail @@ -22,6 +23,7 @@ def create_minibase(config_class=Config): app = Flask(__name__) app.config.from_object(Config) # (DATABASE) Initialisation + #db.metadata.clear() db.init_app(app) # (PASSWORD) Initialisation bcrypt.init_app(app) diff --git a/webinterface/minibase/__pycache__/__init__.cpython-311.pyc b/webinterface/minibase/__pycache__/__init__.cpython-311.pyc index 61e43c24f83ef678fefa552cd462a76bfd0e6b60..6bb6acb37e9b99218a33b048aaa56579cd37d2bd 100644 GIT binary patch delta 610 zcmZ{f&ubGw6vt<5H~S+y*==e{6N#muDJ^slA_$`P)|)49ff6>ENxL|^o4(nW=F}EE z2|a}Q9~ALsLGa+8Q0O`5{sFo4;>mdpsTy#Y`7-bGzVFSOo9d5c_L(t{nDz2oOAJS> zPOnEBZ%;Ylw)9ihW|TZ2V&Ri zd=D5(1tmbiu7K6Xb7k#$Epx4zqt5j6Qp>t65zD^ZD|INX>7VwK(}p^fvFsg)bQp<~ zBKqrpV41qH-3A4%~Bo|%xEqi*y^CkkI&lYh4U?p&-tron{# INA8;b25*{^YybcN delta 500 zcmdlf{6vU%IWI340}%XF$ScWsWTLunJrhGJ^D?05YLFBdMDYN{Skc6Ifnw}v zVtgs=seJMLFnuW;K%M}M2UO3Ard}|WJB=}gvxPBAD1|GSL6iF>1H;7sGMn`oYnd52 zCa-02ljR0#za^TRnU|TASe&X?kY8L^!vNo$MBj03CR%u(1 z)wjeDs#A-K^YdWJK`yx^0hdfID#|Y^*2_rDOUVJMD-xW%kX4rjWZ&eota6h-utssI z0y!c;TwFIfgiVe4DGS@?dbW5*M&Zf#*;T@M(sB}uv*VMJiz*9BidaFWb3=r3^3yZ( zir7FRTo94m#LS!`c8~x++yTk?d1;yHMI1oUB2f?_4k9EbS954+NrIRl>sK-qse#xk rK;jpNO>TZlX-=wLkpYm)2*kygCZFZdo6O7EttiXL|A7Gq0X72wNZ@vn diff --git a/webinterface/minibase/__pycache__/models.cpython-311.pyc b/webinterface/minibase/__pycache__/models.cpython-311.pyc index c2734476d622fb453d15b7493943939af706fdb6..4b18a76e1186a4afe207eb9e4d42bef65b1edea9 100644 GIT binary patch delta 1489 zcmbtTOKclO7~b_`?fC6DQR)WNL^y4?2~m{t@FPhHsY0sK7N|L3RkF68vAfB7*ZjMt zjW4NC4n1&am;(nSBra4DLIQ~s2Lv}HK->@v7cL-KToTj+LLB)2bt$P5PK>pm=YP%o zk8i$yPyOjc>RvJ#Q*eduo#bCdc2dUzpDH`2d*Tl@yYtB@jm57jdP2Mz_)*oxwO~ih zh;M^s5ibrE?y8FNj>46i%9L6FzhFS&q4hAGMho|vn0sz~H1eq4m!jhR@-gvwF`qpU z@xWru9v5E}bEC2UihH{>IvPLHc&0QRN%)qexK=u`m0~%T-d1aAo?)47su3Nl+3oX4k z<4vP$d9&-C)@}gCP$we~bo~Y8w4&^)18wLf$MvLUbiEr6;DM3rMq>kbQ-&;~w<-QA zeW#|xH|3cT88DgD7;iX?>p>ZExz!YjN?uKila({-n0UEzLCuPHEB#lV!0RAI5J1o) zP@sL3UV&cmu^M&&Nr~A(NAriH&*RY+Nutq|t%5Qlx(r}O%wkKn&4sf$&U*wwu#?w?`1>xXesZ_sSpRJ#v zba=2u@yqkxq(4}4zpQ6u!t`8b*vLPp>jFInD2R_Pu9Y*mmElYH60HGg{0r#Tf7$eB zbfN9AuEm$2iUxWj?w%r=FWzzT>J@cQIU4WGzg4{Z+P-hSf6%8GR~Pq`!$1N1q`!ZJ H(NE`Zk+WNO literal 20299 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 Tv~+3Srdd+ULS7{mk(&Px8gn}< diff --git a/webinterface/minibase/admin/__pycache__/forms.cpython-311.pyc b/webinterface/minibase/admin/__pycache__/forms.cpython-311.pyc index d7c9140802601e7bc6ffacc944cd292ca8523b62..423654a0d039d321a5797b8e9f99d2244ff2f90b 100644 GIT binary patch delta 1604 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%0A!JTjmt%+8_lkiZP9c12w zm*yRi_a%ISKjEikXC@#VNE{H_5^X{-5fs`J?LtSQL+DI&S{N(CJ2=F5J%L_5gat>?uH7DkOvC4~it@(6jm0!W>Y@W4fR_->Wt@*pWz+Xyd z)3;M1&o*h!GdW=;m0i=?N||Jazmv)&`D{L&U(23DvqDW@1Ix7B zrk6>FbmLSS5c8@0s(6jRlNR$lrZRhq6VloBzBp+G-YtnsPtEVvbZ+5>X1jXj`VDv~ zr@-g$<~VVwJgXt&gu4muR}Q+8^Onj(^9s1nmkMSr{4ihDj}7Ktxy^gz4e1Z0$jDcu&n)J(f8Ux97`5O% zDFaFQv8y7jBX?dKl{}&pp^YT|#&6Z6GyyoI~aS5ka$hue$lZgqFEllTnSfA`+W9ISPfaVle zmzH=@Tpy9^lo0rtoIu8x~_HBrrBYY!piehE!s3Mf|x9G&9)4SjrCzai~=Tu ztl5DKcuhk&Oki?*4U-|$no{DD7Wg=oNppafB&=s~^|p}CYc?pSFd0PLOe#7>=s&zI zXmFh7fb|8nFd0xxW*87aZUyPfim@h9K59jZ*5*yovxy@ui)&Hongfp-ep?t zBRd@Tf{WG9=816^E=O@4H*q8Xi!3f zJE-MhOA&PyP?wBC3JOUm^bKm2{Ns}6*!G%?<`gt1p}8GzpVYsoMi@i;suO_$LVl3l%us~6DY3oE{8(HAfH;xESD zSH>2KV~d5cMS1LkGIl}sT~vG*Hy7)or~6dOnp=OhGXT#Tud~ zE_se@PswOTK{FDXq3BsqqjT!P@jcNqr$%N7ccP8ZgX1s&_0W?pd5!z%0ne%IckO#v zHRy4c&=WGyv#4)3zCU@4sn&=*#y-O!PfJMwT&F7Z`0xRk%Gg7acM6$fV6hAtqc3|w z#&{<@0orqLi?1Oe{!IlkesEBV{^5du`0LJRy+!s!fjuF!(+WE+`)3sY%;wMP6DIPm z2{S5r#SVS;geKUmq^kv-@>Tz))osqs?w+P*pW z)+qZm9eS)HOu`GbVCmOgntC%#XG&Yyo6+si07$j7qS?uG6sZ%l{$_33D(uVJU86WAt6-hl3gLi6$01A-J!U9i|%N_9sS~$ zN^GJSJ6VXGlw&hWY({p^D(>0Mg}Ph`hU;*pop>(o#B*tnKWM4;T-Ie2QBXuek%pej zLCJGyD=ni*1x-q5l5*vJH9Ae85*>N_rfFJ@OcJO>VhuJ;I#)t9Tp|9R9&y^I%a4aH zKRh^8Lzl+8rrr`=hzFxjom$2W)n`m)w&|qleuFeL5>$$=mNrhVicYovqCeFgni*Kt zltn;|W>2^NxWb-F&+#eHUxi!zHzb5W{jzI7aSZ^00`DmS zwiq~C2poMeKCg@~7RN6Y#xKd^SCsK9a^R{GxVm|vE`mab>L93xAgG5Rs3$I=&MF2; z9WfaVD`;3k!wn%cCV7r-FUn|EL9-H?r4Tx+Mo+7UCiZl0POFhw0-@pYw?fDl*TdT7 zf!Zg}PnkS>vkJn}dc3CnGXF{VIz1DqMNYSloHyo{&KYl+GrG31H$r;tH+DwtWU)K+ zn(r1PWNV{&^hS*?nIYoUAC}h!o(GlB;1>S@2_Z+X?CMus{Xh*cl?2;iW!f7C8MZFr}PU! z|Jh$L)K{bNxbM(3bZs@m&*Dps zc>B}MkZd`pSkCQQ+bwW(0LjZH#(LgT79A~Xu-gmIk8htM8fO&C8MDSbXp}_%i^kyA z>h|(hjGwnY&1ndF; literal 6283 zcmeI0+ix4i8o+0L+ljBa-!>Q5q;cGonA3lQm^(D>{3P&6sI`WR^ z`pxXl_nU9N`6d<%BM8>pv*h9+LO-&M8-k6*<9`bXeTfvL2qmNnvY`58pX!(WYCsOC zK{=>~Q@Kk z0d-IwREOjtbyyx&N8}L!`49;yAu@W~htNHEoFI>pv0LMAuKiyT6|D5E`|gK3dnl2Q z&~0dVui03ZJY_^ZWW>5;OnAzOd&o$1$(Zz%(d!|juS>?1r;L6N83SE1rj^0VC^PgQ z_JuMbJ3&cVAvC8Gb+eS$i7i%XDYsUkc5tnf*EVcSiBhDbpxYuP?^cPX+dU^sRkBHo zWj!Od@k(AJAXhw9Q8)ADExWgo$Q8>?H#S53; zgbyLAMBk_=TA`_dkO;x!hv)H4PM8j{8#=Z18rng(+G^caXrEToPj#1CXtIN@GU+^A z4Y(;NZMJEZ-WNKFxhCjQw+BL3MK^s5yQ%j79pN_2?p||-0`lnH)85NXcfKq19dc_B z>?vO(#oswMXfe{(BA^8I(N=y3-4ES{x4qYV$3ypyh`kdLbL)cZZh55 zPBK-1B~NngN;>M5bl0CKM{H56779euw&%E({I-rPZ0Krfd-764e-4y>*KY@b1km*$ zhsh4CfjVbmv=83d?td>|Dk=bI4v5gISJa|TV^BdSSZx4m@^q5r*_VgO!OR##{=A~t zA<$peo~Z+6nnIZ|$oOcAwT(8ko4={XHs56O*VXJsMJ3sH$X0f}sAmBK4tDl^as{v_ zbS+;Xty2C4fDFpP&C*I$C)&d1mOc5KwqM9nY9}#=tYXID9kw10H*b$Ld%zv1DNBCmb{SUNqwWsBP8piiuYYyt12^GN#X2 zv#YzaFIq=4d!oO0{t<%cXBO=tf6x3cVHA}NY1K-t?548Tk)zNknubQvG&G8)p;0jX z7+wc$k9X^YySF{v9oQG@41derfl4sR?Fn}`aLr2lPC%zvlNpa)z+G`?2N>(x0bGf6 z8l(X1{qRShVNsk#jBYx^q9)w*D9g^WD9xgSsZKP=bLBU{rWxpBk9A?`PLnP`J=+$V zNJ{m{q#2p?Kyv)p0Z2*=Nr@pTWp5J(#~nD~T&PjDnx zt=W}BkzBD-C%loQ^YBs!A?Y4Vo+1e!XkYjnBPqE^o^wu>zn@5V!M%ud4~j041MpEC zBH2Od&lBm&KZHnkn)G=X^%Z#jZ$vH_@#kupI$kpIl7W~0w?qzQouhZ_Y|W1QPho@w z-xvOJ7{$X*+ZlY`v5zB;bCzWOR5yszj%hq-ogD@Tn^w`0!#zHZ-}e40J_MLaxWi~b znP90uY$n6btk}dmcx*U?omxp>g0U{b(?oHs9+Aw5-UzoF z$L%^!nK)(Ol&5h#X2g%*Dc13#i5CsL$WeUFnq4~7I4)VK#lwuF)P*8DCOH1^Qy^j4 z_l3V4$V1&KyuuvZ6Vp3DSa8nU57{e9wO#QPS+zx%*YWBFs0)MfH}dyoM2#1WDPvpMy4^6 zuH!iq&lz~m6V2z0_zSgjb-ZliWdkpBG|yPGCl5vQq?KAe1kLlAq;nnjj^nn5rMy;L=YGH4Dpe~ADQT3s;FKS3_>BU0JovWCmeU?= z3gHT~z-}cpektKNEBt)K_hY69HqPbPbxJNrhgmkrF9W!z&wUGioZ%ZOU$nc3AI!O1 z@+)3~2~|sEnZ5>H*(HcUx5IJ@T?5a8YbqDOw@dtGQ29dGu? z)K(w-v-T?Mamo}WVAFZF)`(_vEZ diff --git a/webinterface/minibase/admin/forms.py b/webinterface/minibase/admin/forms.py index bda9d929..912edc7b 100644 --- a/webinterface/minibase/admin/forms.py +++ b/webinterface/minibase/admin/forms.py @@ -1,7 +1,9 @@ from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired, ValidationError -from minibase.models import Company_legal_entity, Company_industry, Company_relation, Person_role, Person_competence +from minibase.database.models import Person_role +from minibase.database.models import Company_legal_entity, Company_relation +from minibase.database.models import Industry class compIndustryForm(FlaskForm): # Defines the form class to be used for the user registretion @@ -12,7 +14,7 @@ class compIndustryForm(FlaskForm): # Defines the form class to be used for the # Queries to be made in order to validate the form : If Relation Type exitst # Case Insensistive def validate_name(self, name): - industry_query = Company_industry.query.filter(Company_industry.name.ilike(name.data)).first() # Database Querry ilike means case insessitive + industry_query = Industry.query.filter(Industry.name.ilike(name.data)).first() # Database Querry ilike means case insessitive if industry_query: raise ValidationError('That Industry Type is already registered') @@ -66,4 +68,17 @@ class personCompetenceForm(FlaskForm): # Defines the form class to be used for def validate_name(self, name): person_competence_query = Person_role.query.filter(Person_role.name.ilike(name.data)).first() # Database Querry ilike means case insessitive if person_competence_query: - raise ValidationError('That Person Conpewtence is already registered') + raise ValidationError('That Person Conpetence is already registered') + + +class statusRegisterForm(FlaskForm): # Defines the form class to be used for the user registretion + # Decalarion of the fields for the form and it's propereties + name = StringField('Name', validators=[DataRequired()]) + description = StringField('Description', validators=[DataRequired()]) + submit = SubmitField('Register Status') + + # Queries to be made in order to validate the form : If Person Role exitst # Case Insensistive + def validate_name(self, name): + person_competence_query = Status.query.filter(Status.name.ilike(name.data)).first() # Database Querry ilike means case insessitive + if person_competence_query: + raise ValidationError('That Status is already registered') diff --git a/webinterface/minibase/admin/routes.py b/webinterface/minibase/admin/routes.py index 3f698c28..e2dc41fc 100644 --- a/webinterface/minibase/admin/routes.py +++ b/webinterface/minibase/admin/routes.py @@ -1,8 +1,10 @@ from flask import render_template, url_for, flash, redirect, request, Blueprint from minibase import db from minibase.config import themeMinibase -from minibase.models import Company, Company_industry, Company_legal_entity, Company_relation, Person_role, Person_competence -from minibase.admin.forms import compLegalEntityForm, compRelationForm, compIndustryForm,personRoleForm, personCompetenceForm +from minibase.database.models import Company, Company_legal_entity, Company_relation +from minibase.database.models import Industry +from minibase.database.models import Person_role, Person_competence +from minibase.admin.forms import compLegalEntityForm, compRelationForm, compIndustryForm,personRoleForm, personCompetenceForm, statusRegisterForm # Declaring a blueprint admin = Blueprint('admin', __name__) @@ -11,6 +13,7 @@ admin = Blueprint('admin', __name__) @admin.route("/company_register_legal_entity", methods=['GET', 'POST']) def company_register_legal_entity(): form = compLegalEntityForm() + legal_entities = Company_legal_entity.query.order_by(Company_legal_entity.name.asc()) if form.validate_on_submit(): companyLegal = Company_legal_entity( name=form.name.data, @@ -22,11 +25,13 @@ def company_register_legal_entity(): flash(f'{"Company Legal Entity registered!"}', 'success') return render_template('admin/company_register_legal_entity.html', title='Register Company Legal Entity', + legal_entities=legal_entities, theme=themeMinibase, form=form) return render_template('admin/company_register_legal_entity.html', title='Register Company Legal Entity', + legal_entities=legal_entities, theme=themeMinibase, form=form) @@ -34,6 +39,7 @@ def company_register_legal_entity(): @admin.route("/company_register_relation", methods=['GET', 'POST']) def company_register_relation(): form = compRelationForm() + relations = Company_relation.query.order_by(Company_relation.name.asc()) if form.validate_on_submit(): companyRelation = Company_relation( name=form.name.data, @@ -45,20 +51,23 @@ def company_register_relation(): flash(f'{"Company Relation registered!"}', 'success') return render_template('admin/company_register_relation.html', title='Register Company Relation', + relations=relations, theme=themeMinibase, form=form) return render_template('admin/company_register_relation.html', title='Register Company Relation', theme=themeMinibase, + relations=relations, form=form) @admin.route("/company_register_industry", methods=['GET', 'POST']) def company_register_industry(): form = compIndustryForm() + industries = Industry.query.order_by(Industry.name.asc()) if form.validate_on_submit(): - companyIndustry = Company_industry( + companyIndustry = Industry( name=form.name.data, description=form.description.data) # Here we need to give the id of thr role as this is a foreign key @@ -68,11 +77,13 @@ def company_register_industry(): flash(f'{"Company Idustry registered!"}', 'success') return render_template('admin/company_register_industry.html', title='Register Company Industry', + industries=industries, theme=themeMinibase, form=form) return render_template('admin/company_register_industry.html', title='Register Company Industry', + industries=industries, theme=themeMinibase, form=form) @@ -80,6 +91,7 @@ def company_register_industry(): @admin.route("/person_register_role", methods=['GET', 'POST']) def person_register_role(): form = personRoleForm() + roles = Person_role.query.order_by(Person_role.name.asc()) if form.validate_on_submit(): personRole = Person_role( name=form.name.data, @@ -92,17 +104,20 @@ def person_register_role(): return render_template('admin/person_register_role.html', title='Register Person_role', theme=themeMinibase, + roles=roles, form=form) return render_template('admin/person_register_role.html', title='Register Person Role', theme=themeMinibase, + roles=roles, form=form) @admin.route("/person_register_competence", methods=['GET', 'POST']) def person_register_competence(): form = personCompetenceForm() + competences = Person_competence.query.order_by(Person_competence.name.asc()) if form.validate_on_submit(): personCompetence = Person_competence( name=form.name.data, @@ -114,10 +129,37 @@ def person_register_competence(): flash(f'{"Person Competence registered!"}', 'success') return render_template('admin/person_register_competence.html', title='Register Person Competence', + competences=competences, theme=themeMinibase, form=form) return render_template('admin/person_register_competence.html', title='Register Person Competence', theme=themeMinibase, + competences=competences, + form=form) + +@admin.route("/status_register", methods=['GET', 'POST']) +def status_register(): + form = statusRegisterForm() + statuses = Status.query.order_by(Status.name.asc()) + if form.validate_on_submit(): + statusRegister = Status( + name=form.name.data, + description=form.description.data) + # Here we need to give the id of thr role as this is a foreign key + db.session.add(statusRegister) + db.session.commit() + + flash(f'{"New Status registered!"}', 'success') + return render_template('admin/status_register.html', + title='Register Status', + statuses=statuses, + theme=themeMinibase, + form=form) + + return render_template('admin/status_register.html', + title='Register Status', + statuses=statuses, + theme=themeMinibase, form=form) diff --git a/webinterface/minibase/company/__pycache__/forms.cpython-311.pyc b/webinterface/minibase/company/__pycache__/forms.cpython-311.pyc index f283baf0dd3bf7ad39934371a51ba74f00781137..44326d88fe7a97180127b52a1d4fdc48dcbe6870 100644 GIT binary patch delta 62 zcmdlheoUNqIWI340}xzYtCrfmk++bGPa-!nFEc5zI8`qtu_SSFGuIgboeK;oXmUJv F8~|fC6aWAK delta 53 wcmX>mzE_-gIWI340}vR8sirn<0s{(~oWUIj0Ej{lWB>pF diff --git a/webinterface/minibase/company/__pycache__/models.cpython-311.pyc b/webinterface/minibase/company/__pycache__/models.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9c7ed541fc69b6dfafdcbac42ac5ab5f57d9e210 GIT binary patch literal 7027 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 literal 0 HcmV?d00001 diff --git a/webinterface/minibase/company/__pycache__/routes.cpython-311.pyc b/webinterface/minibase/company/__pycache__/routes.cpython-311.pyc index 479f15ea943517a946df05b6b64216e203453f06..d60f5b50e628086e68f452fcb915e561309d5b6d 100644 GIT binary patch delta 225 zcmX>geqEe*IWI340}$L_tCo6cBCjOlg^B9!MvM$83@NNR+_}6_ykIt44qq;R6hD~F zo+FSen9Rh;kSi1=#K^$Jkjj?AF>!{rA!iC#3U@lw8lGiL3=FG*7y?pwTNsuBnX6#} z3{j#f?7OS31)g?qy6246A_{0#bNd7?uH5RQKBhq z!3>(b6aU1CGTmZ#&d)7K%&WX50A<8yZq8&(XJh2qe33niiIqP$GcR+pCs!}yo5|O? P;>1iZFknHG!?_y(8-6o- diff --git a/webinterface/minibase/company/__pycache__/utils.cpython-311.pyc b/webinterface/minibase/company/__pycache__/utils.cpython-311.pyc index fbc49cdee24438da40201c174f4114caf46fdf47..af34ecc5bd4c8c25382372206f16402f3a2f61b9 100644 GIT binary patch delta 570 zcmZ{hzfZzI6vyw{UTMLWGyVdiREa<6AaQVDP(tFOi-Q^m;~;trBm#QX#7P+(UFtbF zyQqVIfrI)V01_c2ZaTO*IGLFEj={u4ulGKE*Z02n?)5(G$FOy2SwRHjswL0 z_o#(h&#L^z7$6+Dsj>c zIbpG@jA~)<{D*auORcMNO-w0qF{sAO9{A7?=7~$}C_F4yi7%d18*06(OS3}|ipy{c z0QG3(%x=z0y+&LLxdr$%W{PFDzn#zUF<4?S?*j0yVvJkJtaP3h XTB-g&TWGTSd%g!1+#_gUqjL@4PC0|j delta 504 zcmaivze~eF6vy+DT+&q227h5IZECfa3=V>WLlMDA2a(pPC=$3L!8VagJE))z;wXdz zS2xAKq=UiT(#<#SA~OSZ0cSI8J@DbD11u=pcf@tl%PPoOr5!O{X2ca>Xo z0JUo5QOIEo_#s)w3|EP^*%S&6VMJUu1f~Tt0$G6>L?|N)1!m$Dn+J_{wb69jUf^#~ zHj7#bgV_Q@)8db*CZs=2c}**lIXqtEC)$c-;mR3}4U3EF%Q*n$JX~70^zzvC7K01&r_p(N_SVCm9#R-jnuT{~P_J4C8(27b$+K@2H~C E7u+Ck{r~^~ diff --git a/webinterface/minibase/company/forms.py b/webinterface/minibase/company/forms.py index 7842ccb9..82e3baf6 100644 --- a/webinterface/minibase/company/forms.py +++ b/webinterface/minibase/company/forms.py @@ -1,7 +1,7 @@ from flask_wtf import FlaskForm from wtforms import StringField, SubmitField, IntegerField, SelectField from wtforms.validators import DataRequired, Length, ValidationError, Optional -from minibase.models import Company +from minibase.database.models import Company import minibase.database.utils as DbUtils diff --git a/webinterface/minibase/company/routes.py b/webinterface/minibase/company/routes.py index 32081747..8d8e0464 100644 --- a/webinterface/minibase/company/routes.py +++ b/webinterface/minibase/company/routes.py @@ -1,7 +1,8 @@ from flask import render_template, url_for, flash, redirect, request, Blueprint from minibase import db from minibase.config import themeMinibase -from minibase.models import Company, Company_industry +from minibase.database.models import Company +from minibase.database.models import Industry from minibase.company.forms import companyForm import minibase.company.utils as utils diff --git a/webinterface/minibase/company/utils.py b/webinterface/minibase/company/utils.py index 717b8148..324c9daa 100644 --- a/webinterface/minibase/company/utils.py +++ b/webinterface/minibase/company/utils.py @@ -1,11 +1,12 @@ import os -from minibase.models import Company, Company_industry, Company_relation, Company_legal_entity +from minibase.database.models import Company, Company_relation, Company_legal_entity +from minibase.database.models import Industry # Retunrs the qurry of all awailable industrie names on the table named Company_industr # Note that the formating is done during the SQLAlchemy Table declaration. def company_industry_choices(): - choices = Company_industry.query.all() + choices = Industry.query.all() return choices @@ -27,7 +28,7 @@ def company_relation_choices(): # And not the name. so this function returns the right ID of the name shown at the # Register Company Form def getIndustryId(nameForId): - selection = Company_industry.query.filter_by(name=nameForId).first() # Gets the id of Role + selection = Industry.query.filter_by(name=nameForId).first() # Gets the id of Role return selection.id diff --git a/webinterface/minibase/database/__pycache__/models.cpython-311.pyc b/webinterface/minibase/database/__pycache__/models.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7694ebc30293a357a521ec8ad3c3366135cd0b18 GIT binary patch literal 20619 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 O?SNNVVY%vL)%-sMshu4F literal 0 HcmV?d00001 diff --git a/webinterface/minibase/database/__pycache__/utils.cpython-311.pyc b/webinterface/minibase/database/__pycache__/utils.cpython-311.pyc index 137541b75d72d43d45e3f3d0003f31f66448ae22..8db3dfb0fcb5230a2d9fb5c119740fd00dbee200 100644 GIT binary patch delta 773 zcmZ{fL1+^}6o%(zcavnhg5X-Z8^-}a8Ldm5EDc(GYkcO6of>%XE$wl$#+j{Du!<&!y{+aptXKQq0OnZnyNmhVZM|=OpN5xAFabqog9Wz7^4O9kfvb5)lP&qQm#9}P#r9fW+h_SsHJLQO z<)>cRWR@zt#DMS-gThbLgi6#!fM|#yF(fo17dkO4jLk)6MMQ`OQ*dHbgo!;OLW~KM z*ejyMxacAFi5M{sBx;qa^CT_dD5Uf> zoTxM9TB+(3@)g{ZV_1MD1n`>YBlyuHS-|nG)B+W+$g|MXsL2_CemwR~Vq5tNLyZG( z4B%4Z*p~zt#{=&qrqs_ciGS2CT*YsJGTE#IuR|7hf_1X_sSRLOOTrx9(>}l=4(VI? z*hu0hec-|!3S3DLHrN*n$2Hjc3eWQ+V^%NFE zVRep_2kvwHrH`N-c!r_K1TOK=#5}2w+>;D}jCuTp(dMZZPrWHLdFqf)9r39)pKkH# zL!Le2S$xiSafD~0%lTriS}2$1g|pxqxEmkxznG0gl$$g?#g)h_9MX~)GsDUfDVsQE zjv8^hP%7NdRq`2;tLAXktR>vUjvLZ(^PKuQu7$INKg`7XGPOXvQYUsL0O+vW&GW0n d#+zrW!xoz7SBGVqXRE7u!0fXBXcVJK_y_*z(Qp6& delta 710 zcmajZF=!J}7zgnCa(B60lDo_0lGId5ra;qFp%xLLc4;hXTN{njfk@~VU@D*GfDh^s49J1I=aBvOcP%>Exf}7Aqgo57{CmlTA_q+H0@7{fHV`{5pyf%!e z#80JIs6Xl(+4VQPcrKxY(2#s^!4J71Uv_0*aTN&i5a+6^`e8ThYp&);+z99LQ_0m) zVWX(BF$}YD)K~)}tcf~nVU$f^jI}Y&CedIWG}#nZEPkai!Di5A$1usBL5Iy^iXF!^ zdloZQsW|pMxO`C=Y4a`rajn@KCH_qAdrj=NJEDI)8COR7e5>2+2(R9zNtmFuP=>lN zga|E!K7mfA?1D+2{28J&tCYbRY$_K3vUI4;(2@EL@&x(}orI5|FgVom0Hs%;gFem8 zMTsHM-qC*aihemrE(Xc7cum`bTSZyuv>Lk#bM!K{O^Z&Rmg0H1MveFfSfcaB7Ohwl z^wmhKRX%o1eXBq@bCup3dD=B|>H?=OeKfae)67%T8aJ+UQsWY3hCA<2)xJc%L`=WQ zfyZ@BFYKS^j0g43oqD6z@mkFrD3*C+jY}*tr^m{PY1&C9)fEnU^ftK*8da>> Company_industry.query.all() - # >>> [('1', 'Indsutrial'), ('2', 'Consumer')] def __repr__(self): return f"{self.name}" -class Company(db.Model): +class Status(db.Model): id = db.Column(db.Integer, nullable=False, primary_key=True) - name = db.Column(db.String(100), nullable=False) - legal_entity_id = db.Column(db.Integer, db.ForeignKey('company_legal_entity.id'), nullable=False) - relation_id = db.Column(db.Integer, db.ForeignKey('company_relation.id'), nullable=False) - industry_id = db.Column(db.Integer, db.ForeignKey('company_industry.id'), nullable=False) - - main_company = db.Column(db.Integer, nullable=False, default=1) - subsidiary_of = db.Column(db.Integer, nullable=True, default='') - website = db.Column(db.String(100), nullable=True, default='') - - street_bill = db.Column(db.String(100), nullable=False) - street_no_bill = db.Column(db.Integer, nullable=False) - city_bill = db.Column(db.String(100), nullable=False) - post_code_bill = db.Column(db.Integer, nullable=False) - state_bill = db.Column(db.String(100), nullable=False) - country_bill = db.Column(db.String(100), nullable=False) + name = db.Column(db.String(50), nullable=False) + description = db.Column(db.String(300), nullable=False) + upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) + last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) - street_ship = db.Column(db.String(100), nullable=False) - street_no_ship = db.Column(db.Integer, nullable=False) - city_ship = db.Column(db.String(100), nullable=False) - post_code_ship = db.Column(db.Integer, nullable=False) - state_ship = db.Column(db.String(100), nullable=False) - country_ship = db.Column(db.String(100), nullable=False) + # returns a more information-rich, or official, string representation of an object + def __repr__(self): + return f"{self.name}" - classification = db.Column(db.Integer, nullable=False, default=0) - comment = db.Column(db.String(300), nullable=True) - image_file = db.Column(db.String(20), nullable=False, default='default_company.jpg') - - employees = db.relationship('Person', backref='company', lazy=True) - notes = db.relationship('Company_note', backref='concerns', lazy=True) +class Industry(db.Model): + id = db.Column(db.Integer, nullable=False, primary_key=True) + name = db.Column(db.String(50), nullable=False) + description = db.Column(db.String(300), nullable=False) upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) + companies = db.relationship('Company', backref='industry', lazy=True) # returns a more information-rich, or official, string representation of an object - # >>> company.query.all() - # [1, ComanyName, CompanyCounntry] (Do not change this presentation - # it will corrupt: the getCompanyId function in minibase.dabase.utils def __repr__(self): - return f"{self.name}, {self.country_bill}, {self.id}" + return f"{self.name}" +################################################################################################### +# Person +################################################################################################### class Person(db.Model): id = db.Column(db.Integer, nullable=False, primary_key=True) name = db.Column(db.String(50), nullable=False) @@ -127,8 +154,6 @@ class Person_role(db.Model): last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) # returns a more information-rich, or official, string representation of an object - # >>> Company_industry.query.all() - # >>> [('1', 'Indsutrial'), ('2', 'Consumer')] def __repr__(self): return f"{self.name}" @@ -141,123 +166,97 @@ class Person_competence(db.Model): last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) # returns a more information-rich, or official, string representation of an object - # >>> Company_industry.query.all() - # >>> [('1', 'Indsutrial'), ('2', 'Consumer')] def __repr__(self): return f"{self.name}" -class Company_industry(db.Model): - id = db.Column(db.Integer, nullable=False, primary_key=True) - name = db.Column(db.String(50), nullable=False) - description = db.Column(db.String(300), nullable=False) - upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) - last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) - companies = db.relationship('Company', backref='companies', lazy=True) +class Person_note(db.Model): + id = db.Column(db.Integer, primary_key=True) + title = db.Column(db.String(100), nullable=False) + content = db.Column(db.Text, nullable=False) + status = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) + date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) + date_due = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) + person_id = db.Column(db.Integer, db.ForeignKey('person.id'), nullable=False) # returns a more information-rich, or official, string representation of an object - # >>> Company_industry.query.all() - # >>> [('1', 'Indsutrial'), ('2', 'Consumer')] def __repr__(self): - return f"{self.name}" + return f"{self.title}, {self.status}, {self.content}" -class Company_relation(db.Model): +################################################################################################### +# Company +################################################################################################### +class Company(db.Model): id = db.Column(db.Integer, nullable=False, primary_key=True) - name = db.Column(db.String(50), nullable=False) - description = db.Column(db.String(300), nullable=False) + name = db.Column(db.String(100), nullable=False) + + legal_entity_id = db.Column(db.Integer, db.ForeignKey('company_legal_entity.id'), nullable=False) + relation_id = db.Column(db.Integer, db.ForeignKey('company_relation.id'), nullable=False) + industry_id = db.Column(db.Integer, db.ForeignKey('industry.id'), nullable=False) + + main_company = db.Column(db.Integer, nullable=False, default=1) + subsidiary_of = db.Column(db.Integer, nullable=True, default='') + website = db.Column(db.String(100), nullable=True, default='') + + street_bill = db.Column(db.String(100), nullable=False) + street_no_bill = db.Column(db.Integer, nullable=False) + city_bill = db.Column(db.String(100), nullable=False) + post_code_bill = db.Column(db.Integer, nullable=False) + state_bill = db.Column(db.String(100), nullable=False) + country_bill = db.Column(db.String(100), nullable=False) + + street_ship = db.Column(db.String(100), nullable=False) + street_no_ship = db.Column(db.Integer, nullable=False) + city_ship = db.Column(db.String(100), nullable=False) + post_code_ship = db.Column(db.Integer, nullable=False) + state_ship = db.Column(db.String(100), nullable=False) + country_ship = db.Column(db.String(100), nullable=False) + + classification = db.Column(db.Integer, nullable=False, default=0) + comment = db.Column(db.String(300), nullable=True) + image_file = db.Column(db.String(20), nullable=False, default='default_company.jpg') + + employees = db.relationship('Person', backref='company', lazy=True) + notes = db.relationship('Company_note', backref='concerns', lazy=True) + upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) # returns a more information-rich, or official, string representation of an object - # >>> Company_industry.query.all() - # >>> [('1', 'Indsutrial'), ('2', 'Consumer')] + # >>> company.query.all() + # [1, ComanyName, CompanyCounntry] (Do not change this presentation + # it will corrupt: the getCompanyId function in minibase.dabase.utils def __repr__(self): - return f"{self.name}" + return f"{self.name}, {self.country_bill}, {self.id}" -class Company_legal_entity(db.Model): +class Company_relation(db.Model): id = db.Column(db.Integer, nullable=False, primary_key=True) name = db.Column(db.String(50), nullable=False) description = db.Column(db.String(300), nullable=False) upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) + companies = db.relationship('Company', backref='relation', lazy=True) # returns a more information-rich, or official, string representation of an object - # >>> Company_industry.query.all() - # >>> [('1', 'Indsutrial'), ('2', 'Consumer')] def __repr__(self): return f"{self.name}" -class Status(db.Model): +class Company_legal_entity(db.Model): id = db.Column(db.Integer, nullable=False, primary_key=True) name = db.Column(db.String(50), nullable=False) description = db.Column(db.String(300), nullable=False) upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) + companies = db.relationship('Company', backref='legal_entity', lazy=True) # returns a more information-rich, or official, string representation of an object - # >>> Company_industry.query.all() - # >>> [('1', 'Indsutrial'), ('2', 'Consumer')] def __repr__(self): return f"{self.name}" -class User(db.Model, UserMixin): - id = db.Column(db.Integer, primary_key=True) - username = db.Column(db.String(20), unique=True, nullable=False) - email = db.Column(db.String(120), unique=True, nullable=False) - image_file = db.Column(db.String(20), nullable=False, default='default.jpg') - password = db.Column(db.String(60), nullable=False) - # Additional Querry to link a post wiht an author in the sql this won't be an field - posts = db.relationship('Post', backref='author', lazy=True) - - def get_reset_token(self, expires_sec=1800): - s = Serializer(current_app.config['SECRET_KEY'], expires_sec) - return s.dumps({'user_id': self.id}).decode('utf-8') - - @staticmethod - def verify_reset_token(token): - s = Serializer(current_app.config['SECRET_KEY']) - try: - user_id = s.loads(token)['user_id'] - except: - return 0 - return User.query.get(user_id) - - # returns a more information-rich, or official, string representation of an object - def __repr__(self): - return f"User('{self.username}', '{self.email}', '{self.image_file}')" - - -class Post(db.Model): - id = db.Column(db.Integer, primary_key=True) - title = db.Column(db.String(100), nullable=False) - - date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) - content = db.Column(db.Text, nullable=False) - user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) - - # returns a more information-rich, or official, string representation of an object - def __repr__(self): - return f"User('{self.title}', '{self.date_posted}')" - - -class Person_note(db.Model): - id = db.Column(db.Integer, primary_key=True) - title = db.Column(db.String(100), nullable=False) - content = db.Column(db.Text, nullable=False) - status = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) - date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) - date_due = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) - person_id = db.Column(db.Integer, db.ForeignKey('person.id'), nullable=False) - - # returns a more information-rich, or official, string representation of an object - def __repr__(self): - return f"{self.title}, {self.status}, {self.content}" - - class Company_note(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) @@ -270,3 +269,7 @@ class Company_note(db.Model): # returns a more information-rich, or official, string representation of an object def __repr__(self): return f"{self.title}, {self.status}, {self.content}" + +################################################################################################### +# Project +################################################################################################### diff --git a/webinterface/minibase/database/site.db b/webinterface/minibase/database/site.db new file mode 100644 index 0000000000000000000000000000000000000000..a28690885146d6ffe5df571591ff0c0a9eaa2641 GIT binary patch literal 290816 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%0Aoh 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%0D`E^G-(C;NI6gkUfkflBL!g@%tZ52D^BL_RRFj4L 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 L-2cdlQTcxX#6j}? literal 0 HcmV?d00001 diff --git a/webinterface/minibase/database/utils.py b/webinterface/minibase/database/utils.py index 19d783a8..9738ca57 100644 --- a/webinterface/minibase/database/utils.py +++ b/webinterface/minibase/database/utils.py @@ -1,5 +1,7 @@ -from minibase.models import Company, Company_industry, Company_relation, Company_legal_entity -from minibase.models import Countries, Person, Person_role, Person_competence +from minibase.database.models import Company, Company_relation, Company_legal_entity +from minibase.database.models import Industry +from minibase.database.models import Person, Person_role, Person_competence +from minibase.database.models import Countries # Gets the id of company from the formated output defined at models.py for the Company Model @@ -78,10 +80,10 @@ def company_choices(): return choices -# Retunrs the qurry of all awailable industrie names on the table named Company_industry +# Retunrs the qurry of all awailable industrie names on the table named Industry # Note that the formating is done during the SQLAlchemy Table declaration. def company_industry_choices(): - choices = Company_industry.query.all() + choices = Industry.query.all() return choices @@ -103,7 +105,7 @@ def company_relation_choices(): # And not the name. so this function returns the right ID of the name shown at the # Register Company Form def getIndustryId(nameForId): - selection = Company_industry.query.filter_by(name=nameForId).first() # Gets the id of Role + selection = Industry.query.filter_by(name=nameForId).first() # Gets the id of Role return selection.id diff --git a/webinterface/minibase/main/__pycache__/routes.cpython-311.pyc b/webinterface/minibase/main/__pycache__/routes.cpython-311.pyc index d427e3c5434b2eb5a71c967ae6ea83a7b8f71356..17ff6affd6dba2a512e1f5aed9411e5c6b0186c7 100644 GIT binary patch delta 869 zcmZuu(MuFT7@yhMz1_QWb=A|-K-aVGJfyNj^v(=I5PIn;unxLoy&bRB-8-3G3Bjm` zUaFUD40?$0p$y4_o+Ic_xRVQEAn>J!-mIX9UTS9L6r^G2x8Ho<@B8NWeY4l`F`>WF z^%&sm>H8FZv8MOHM{DW9oEOPQAh3arT-DR^T4>8|)Qja~5J&(cTfy;734phJAFO-} zZrRZ36{&0OnSq+-rxB&K>8C18Ds6|SX_#y?aLYn_v%*G)$fgfr5_ZyUI2x0fI$iaa ztjY@AgSl9Q6A|CP*6C^KCrr>4X;@D*vjJF$(+^T^=&ls>969Ys(0g=Rg{#uGx+!zv zGR>l?QN)zsHuf-6ma2Z>vuG*2(7}GDm2ethvPH^1LuDK=pQPjchloL>G66x z+el~YMy_Gx?qB^D?|nY`&ig!8yMC({FVy3OM!Zmy3v^Rn8tLGrxN;|O@s@O?U<(kF zM@U~7w&tqK0ZDVao6aaEG-+8`Jew4RK>=q3qy(4(!X&M<><3le70GblDf&0eGb3MM zl>Uwk^c|-Y?Bk$l&yn+-ZqhMz;+`mWEt6o%yleT32javeiNb-M^qh(_XZiS?Z3R|n zcvTy_J`p1&s^GL8a!S?8yi*RR%e1DKLj3!k;gjzqg~?nFT40Mnc!KFZ-0soXhYo>Yv4a0y{XL(sIUn4fxsUKNL>w> U5dZcE{rhqlO3=FYST=dBe;GN{ng9R* delta 720 zcmZ8dJ8Tm{5Z%51`FuDwF%l-h4kjU%z#@P#3ZD*;DQJV-SZCkHx#ZRt?VcqHB$|i< zDr+0cR6$XUM2|pJ)J6);Ry2qTDS$|UDA>KoM9J#r?aa-a*_rot@=MNr<+>>#&hPuP zXmQ}4hR+5U%GV+Afv<)JHk)SRYoUehrVW7tkm~CwwWR>CBkbTb9pr4L2OG1hyoPsm zH;MP_`U&Z_S#WDCg+8pXRc9#)2wQ&T`EdKNy0e^WeJBxR;N$n2qQw~M54ex zCUxJ8&(LD;%$c*t=>$;}xBND_DCkA@*SzsmHhWk($@S&XqiYAlNlAzlm}hX%3)&t< zRUG*!q{KM-w-fc2gKnY`x5ivzNs`rS^*oGPEn>@1Ct^KBq-M#I$;4c(b;5v~od{#E z=O<$w+wqTeOFZ2V(H&9~wNMzXvwdrRqBH_WK6cGsnla!5xCbQuP=S))g_H8mZWQ;l NB$Z=B`-LW#{s*>8sKEdL diff --git a/webinterface/minibase/main/routes.py b/webinterface/minibase/main/routes.py index bb881731..8bd15b89 100644 --- a/webinterface/minibase/main/routes.py +++ b/webinterface/minibase/main/routes.py @@ -1,5 +1,5 @@ from flask import render_template, request, Blueprint -from minibase.models import Post +from minibase.database.models import Company, Post from minibase.config import themeMinibase from minibase import db @@ -14,8 +14,9 @@ def home(): page = request.args.get('page', 1, type=int) # (POSTS) Query posts usin SQLAlchemy posts = Post.query.order_by(Post.date_posted.asc()).paginate(per_page=2) + companies = Company.query.order_by(Company.name.asc()) # (HTML) Renders the template for templates/home.html - return render_template('home.html', theme=themeMinibase, posts=posts) + return render_template('home.html', theme=themeMinibase, posts=posts, companies=companies) @main.route("/about") diff --git a/webinterface/minibase/person/__pycache__/forms.cpython-311.pyc b/webinterface/minibase/person/__pycache__/forms.cpython-311.pyc index cee55a9b09f1e184f5cc5ac56f0d335d50ddcd9c..b183639d4470ec3dd8396ef2981335fd3e234548 100644 GIT binary patch delta 62 zcmew(*($}moR^o20SK7asio>{4H6Ndl* delta 53 wcmZpb`XkA^oR^o20SF=^R8y5V@~+}$<6`vW5vGE`5!3#-9Hd&f9b-DpWk~VA-0){$a6U-(+)1XF!?HR~W+vEK_ z-VJoO@}UO~9EfCXjMkN038hBmz^Ovj9;md3J@ham%>m76rJhiwDl2l@Q{S7xCjKKY zTUx1=`r&zef8O`L_ulvC_r32AE>|lB>Dk5)g+IF}>Tg&mrRIao{+}T8g5oKjj!|)H zhN3ag#OOFP!_X8%-J$rV-%`9qU>2H6onJ!kkLA*g#o%fNE^7m>W`nB*xNHr$tOl1I zxLO-^u+(xgTj6uOnyNL)C|p2GYou93?*0= zN{+yMi5Hx~Gn-9SX0}xF8zoz5DBkjt2B*MhCZ67Ge#t-$d}f-lAG3dJWq;7uQIgFw zymhmsN?&IUf7w2x1(t-Fcv~IaE2r3fWLfs_l+|`*S*_nG%Tp=KC>_p;qfYXd!s&(*JXKcEytn40I8!MBJpXq2Y@mg+3+GCunx5|*wP%GC_N4_* zM)=G$)6KWTaqiQt9|$BRC4y5MjBZP$W3g}~Cg_eN5#wR9$o)!K-0O!f8#KXr)~OA~ z%(U>rTsR$*ms+DzJQ+?b_K5tFJ81~xh!hjB>^mqUiy#Y$DAtNYaANPFwR@i-xrYQ% zbI%84i9Ha^nSFZ}lJgr)#+bwn?Yd1$q>~6fA^#6_8^h@STB^%Op%P0(| zyKqoWn&ToOk)P_VL5T?BeBz$4sF!@efs__B9y6{(tFdU0hs79|B+^_tD}JOqWx=fE z=EP@uTe%dMA|lMgL9_VLo6S%5%d9}5u?TubJ{QQ@%GoYG#HC?S^WNiGsZM}y$3r2YXw zktzS}`c7xYckS#lyK-{1Kl@&>dHbqjA5!f@ntdn}*md}p`&R~5AFn>lKF*QnPqI&n z(~9GY>bRmgu4G1cJttS0tUc$?b?5zsz}n^f<*f^f=ep{-u6eF!#&&&YRs-3wTqHlg zW!a7>zG2ljtoepB<6nDEt+LsZx&Hing-;7){nM>qsuu&=#lTn7ig!}=PHNuC%=^3U z&gIC8m}By-h4DgQeO&1esOLwt^CMpgihD|RPigL{%$>tw7K)dP-J6${>ml{hgm!5{ znc)=Qtm>Q9e6uiUg}NhaJ^7xkYl>$;^$cj90Z_M2`_&y*@rCRs&%G(bW&yeaF(mX?8 zL!C*T+U{2zgQ{ata}3s>*7G}z;u%prBbsLfWH{ei4y=r=iiWMs^LRF1}&C1)3I|3*`%O4b0VEe-E$T6+J7Y*s5Tz zjfc2q#>2M)*g15^2Z#6+oFXmgd_*3CqW9hfXA@M2AP_~%aRn4GkEi243*-g$3AF(K z&Gb1n3FsICfJ8{!pmj@1h|Q(2$2l?p6hVpzNy2eUzBk72Db@ZMc=nw@GSn{Hk@YYC zMzNhS7Di~pOFE!|bRs!{&>g&xiV`s?i&BDI!D`f;Tt#vX z$xo03ko**hu>?_3a-&4LA(Q$GkT*}`caC)$*EtlX750Y8-q6?^uw#z5n_gMz=C@x_ zwZyaz4g3EFtBO_s6C2EXu)q(mJ~i8n+{9J(FKsh2h+S_Z83OXg9y6Bn(y5x!%bUzt z_N;pB01c1Y)62uV z+YHOw0D0_X#T+ZmMM z@?0wat{DbpLQBlM=lo52vnkWOI`05@|81BQUTW)GDh3KcEyo*;6b2Vz3h zC8g~a{0f$JhnXwNo1d6D#dgcwVgB~-2VLVJUAIgL&tx(I*=pblVY9=Cz%Z&2c=G|0 zin^;aMbpbWx_KGoi*+4~@@sJJ~gJx^p4#kAtQraG@_&TEHvM<(A= zyr8)IRCk}|?t^>2t7G}$%44|p{kk~4efNtA#dTkG-Pc_AGr@-7)^=ihC~aHPJM^OPx_Ff4fwtQu%vj>7qZRUs3fb_~aMg7;UfLN q16~$m_(-Cy|?(mzk7UoT`_SSdut7g!_kp_5}tMG&zQ+ F0RTH66D$A# delta 53 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
+

Existing Industries

+ + + + + + + + + {% for item in industries %} + + + + + {% endfor %} + +
NameDescription
{{ item.name }}{{ item.description}}
+
{% endblock content %} diff --git a/webinterface/minibase/templates/admin/company_register_legal_entity.html b/webinterface/minibase/templates/admin/company_register_legal_entity.html index afbdea45..a2fe24c7 100644 --- a/webinterface/minibase/templates/admin/company_register_legal_entity.html +++ b/webinterface/minibase/templates/admin/company_register_legal_entity.html @@ -43,4 +43,23 @@ +
+

Existing Legal Entities

+ + + + + + + + + {% for item in legal_entities %} + + + + + {% endfor %} + +
NameDescription
{{ item.name }}{{ item.description}}
+
{% endblock content %} diff --git a/webinterface/minibase/templates/admin/company_register_relation.html b/webinterface/minibase/templates/admin/company_register_relation.html index 0065e310..b9985672 100644 --- a/webinterface/minibase/templates/admin/company_register_relation.html +++ b/webinterface/minibase/templates/admin/company_register_relation.html @@ -45,4 +45,23 @@ +
+

Existing Relations

+ + + + + + + + + {% for item in relations %} + + + + + {% endfor %} + +
NameDescription
{{ item.name }}{{ item.description}}
+
{% endblock content %} diff --git a/webinterface/minibase/templates/admin/person_register_competence.html b/webinterface/minibase/templates/admin/person_register_competence.html index d3c1aeef..4ea4a7b2 100644 --- a/webinterface/minibase/templates/admin/person_register_competence.html +++ b/webinterface/minibase/templates/admin/person_register_competence.html @@ -43,4 +43,23 @@ +
+

Existing Competences

+ + + + + + + + + {% for item in competences %} + + + + + {% endfor %} + +
NameDescription
{{ item.name }}{{ item.description}}
+
{% endblock content %} diff --git a/webinterface/minibase/templates/admin/person_register_role.html b/webinterface/minibase/templates/admin/person_register_role.html index 683a71a4..b6c14921 100644 --- a/webinterface/minibase/templates/admin/person_register_role.html +++ b/webinterface/minibase/templates/admin/person_register_role.html @@ -43,4 +43,44 @@ + +
+
+

Existing Roles

+ + + + + + + + + {% for item in roles %} + + + + + {% endfor %} + +
NameDescription
{{ item.name }}{{ item.description}}
+
+

Existing Roles

+ + + + + + + + + {% for item in roles %} + + + + + {% endfor %} + +
NameDescription
{{ item.name }}{{ item.description}}
+
+ {% endblock content %} diff --git a/webinterface/minibase/templates/admin/status_register.html b/webinterface/minibase/templates/admin/status_register.html new file mode 100644 index 00000000..55b3c83e --- /dev/null +++ b/webinterface/minibase/templates/admin/status_register.html @@ -0,0 +1,65 @@ +{% extends "layout.html" %} +{% block content %} +
+
+ {{ form.hidden_tag() }} +
+ Register Status + + +
+ {{ form.name.label(class="form-control-label") }} + {% if form.name.errors %} + {{ form.name(class="form-control form-control-lg is-invalid") }} +
+ {% for error in form.name.errors %} + {{ error }} + {% endfor %} +
+ {% else %} + {{ form.name(class="form-control form-control-lg") }} + {% endif %} +
+ + +
+ {{ form.description.label(class="form-control-label") }} + {% if form.description.errors %} + {{ form.description(class="form-control form-control-lg is-invalid") }} +
+ {% for error in form.description.errors %} + {{ error }} + {% endfor %} +
+ {% else %} + {{ form.description(class="form-control form-control-lg") }} + {% endif %} +
+ + +
+ {{ form.submit(class="btn btn-outline-info") }} +
+ +
+
+
+

Existing Statuses

+ + + + + + + + + {% for item in statuses %} + + + + + {% endfor %} + +
NameDescription
{{ item.name }}{{ item.description}}
+
+{% endblock content %} diff --git a/webinterface/minibase/templates/home.html b/webinterface/minibase/templates/home.html index 9645bd11..cd545b09 100644 --- a/webinterface/minibase/templates/home.html +++ b/webinterface/minibase/templates/home.html @@ -6,25 +6,29 @@

Overwiev

-

Projects

+

Companies

- - - - - + + + + + + + {% for company in companies %} - - - - - + + + + + + + {% endfor %}
TotalActiveInactiveToDoWarningCompanyCountryWebsiteRelationIndustryID
23920039585{{ company.name }} {{ company.legal_entity}}{{ company.country_bill}} {{ company.website}} {{ company.relation}}{{ company.industry}}{{ company.id}}
diff --git a/webinterface/minibase/templates/layout.html b/webinterface/minibase/templates/layout.html index 193ae3b6..257c193a 100644 --- a/webinterface/minibase/templates/layout.html +++ b/webinterface/minibase/templates/layout.html @@ -52,6 +52,7 @@ Person Register Role Person Register Competence + Status Register Countries Database diff --git a/webinterface/minibase/users/__pycache__/forms.cpython-311.pyc b/webinterface/minibase/users/__pycache__/forms.cpython-311.pyc index 906ccb87b6915c77c5d526b2e85c850cd95729bf..63f2c8133d0479f83478dabcfa11e6069112dbe1 100644 GIT binary patch delta 62 zcmdm{zh9qsIWI340}zy~RZETB$h%9FPa-!nFEc5zI8`qtu_STw8PSIVnim*Q(B!>h FKLKbE6+Qp} delta 59 zcmdn5zfGTaIWI340}zBwluHfR$h%9Fl|MH#FLUx$(T73`7Z^~`2e!%Q#Kb1w6MF~% D8I}{@ diff --git a/webinterface/minibase/users/__pycache__/routes.cpython-311.pyc b/webinterface/minibase/users/__pycache__/routes.cpython-311.pyc index 39f07443df324d683912713cbdd6896c4a530170..91c21b4f457ac6c1b0dc92b3b8a69e98d1ba7b8b 100644 GIT binary patch delta 70 zcmdnxcG!(~IWI340}#}&RZC6W$op2FPa-!nFEc5zI8`qtu_STxe|b+vG5re+SkUG; H#XF1uDPb34 delta 71 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 O56ed;mB-Fp`~LxG>eFig diff --git a/webinterface/minibase/templates/admin/company_register_industry.html b/webinterface/minibase/templates/admin/company_register_industry.html index d8d74da9..3ee67fde 100644 --- a/webinterface/minibase/templates/admin/company_register_industry.html +++ b/webinterface/minibase/templates/admin/company_register_industry.html @@ -43,4 +43,23 @@ +