From 83308b3b3d80470de3052153c03aee8c9b3465d0 Mon Sep 17 00:00:00 2001 From: emile Date: Fri, 5 Jan 2024 21:37:34 +0200 Subject: [PATCH] aa --- osinaweb/db.sqlite3 | Bin 606208 -> 618496 bytes .../__pycache__/admin.cpython-310.pyc | Bin 1355 -> 1383 bytes .../custom_context.cpython-310.pyc | Bin 2164 -> 2257 bytes .../__pycache__/models.cpython-310.pyc | Bin 9451 -> 9373 bytes .../__pycache__/views.cpython-310.pyc | Bin 23709 -> 25680 bytes osinaweb/osinacore/admin.py | 1 + osinaweb/osinacore/custom_context.py | 10 +- .../osinacore/migrations/0043_businesstype.py | 20 +++ .../0044_remove_business_business_type.py | 17 ++ .../migrations/0045_business_type.py | 19 +++ .../0043_businesstype.cpython-310.pyc | Bin 0 -> 756 bytes ...ove_business_business_type.cpython-310.pyc | Bin 0 -> 590 bytes .../0045_business_type.cpython-310.pyc | Bin 0 -> 774 bytes osinaweb/osinacore/models.py | 22 ++- osinaweb/osinacore/views.py | 127 ++++++++++++++- .../osinaweb/__pycache__/urls.cpython-310.pyc | Bin 6105 -> 6474 bytes osinaweb/osinaweb/urls.py | 82 +++++----- osinaweb/static/dist/output.css | 16 +- osinaweb/static/js/pop-modals.js | 1 + .../details_pages/business-details.html | 6 +- .../details_pages/customer-details.html | 8 +- .../edit_pages/edit-business-type.html | 44 ++++++ .../templates/edit_pages/edit-business.html | 139 ++++++++++------- .../templates/edit_pages/edit-customer.html | 141 +++++++++++------ .../listing_pages/business-types.html | 147 ++++++++++++++++++ .../templates/listing_pages/businesses.html | 52 +++---- .../templates/listing_pages/customers.html | 38 ++--- .../listing_pages/daily-reports.html | 37 ++--- .../listing_pages/project-types.html | 36 ++--- .../templates/listing_pages/projects.html | 36 ++--- .../templates/listing_pages/references.html | 36 ++--- .../listing_pages/staff-positions.html | 36 ++--- osinaweb/templates/listing_pages/staffs.html | 36 ++--- osinaweb/templates/listing_pages/tags.html | 36 ++--- osinaweb/templates/listing_pages/tasks.html | 36 ++--- osinaweb/templates/main.html | 20 ++- .../popup_modals/addbusinesstype-modal.html | 32 ++++ 37 files changed, 809 insertions(+), 422 deletions(-) create mode 100644 osinaweb/osinacore/migrations/0043_businesstype.py create mode 100644 osinaweb/osinacore/migrations/0044_remove_business_business_type.py create mode 100644 osinaweb/osinacore/migrations/0045_business_type.py create mode 100644 osinaweb/osinacore/migrations/__pycache__/0043_businesstype.cpython-310.pyc create mode 100644 osinaweb/osinacore/migrations/__pycache__/0044_remove_business_business_type.cpython-310.pyc create mode 100644 osinaweb/osinacore/migrations/__pycache__/0045_business_type.cpython-310.pyc create mode 100644 osinaweb/templates/edit_pages/edit-business-type.html create mode 100644 osinaweb/templates/listing_pages/business-types.html create mode 100644 osinaweb/templates/popup_modals/addbusinesstype-modal.html diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 703801d6f70de7f49df98ab6af82b3e4e459869d..eb594ca234b96741eaca5811a3baf4b627b3f240 100644 GIT binary patch delta 6815 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 A3IG5A diff --git a/osinaweb/osinacore/__pycache__/admin.cpython-310.pyc b/osinaweb/osinacore/__pycache__/admin.cpython-310.pyc index dc91d65b1c9a4a002fdcf0e5f9866dec7bc85461..d8020d239c155229128534bbcfe7dd0b729ac339 100644 GIT binary patch delta 77 zcmX@j^_+`0pO=@50SMZHXQa-U$Scbzwo#jtkt3Bci*o^2s^n$^#^+3oQj;ZEp77n` gaVjm&%u6jU4yi0io&1MInNe%90;?tq52FAh04r7$*8l(j delta 55 zcmaFPb()JepO=@50SGokPE9SF$ScdpwNaasakB&CV46d?*MSQHRl&1RI2J&+-jfa5HRGO7?| zM;9m(0*OWY0|=HZ_z1TC0btJ_?hO=GMDp={+Q-Mv&*s)=7s8S9mZxq9Up=yQ21h`1KzYmhq{f zGoLnUl=9*oeNJ1&l=Xh?0AzZY-u^r=92ko*((eG84Cuhh$-owLgKjcmZBd|PzqBUF zi2j%5TVzz$4jeUyJp)(GX%ANrOmOJ0K!yD`;)u2F5Q~qM<&L`lCs}$`XmU5KolSq^ z&c8T|neaw743^tD+fPPZ*9LU6zD0m+r6gM|$vUDY>gyzTZju*t;?}Ls6aJ+ z%UEa6sj{qvwIxgz7g-yWkJ;rLhR2DPsi`U1ldy8%6`MGsKM8TITI z9b-+d=8ISS*R+kTM7c15n7m}A@KLD>LJgr>d~_DqIGRlW;{mfi%2*y&&0^vLf{!qR za30|dLLFfj032>5RbyyzorqvnjbmyzfL~Q}XkW!--o6rX8l+U}PwNN|A|5XI1FHj;o6uNY%6!2@303+e83p|u}4ogOgV5F>iy zU>a{6;NaPhf5don{sZsa^}T|G*kpe1>-XNwd#^voPTQ@t)v6QtzP|kAKl#|YF?b4w zAc96Drac-PJ%bWq2s1Kc)?<~Dj^-4oFATL>**JG&YIb{7s>p zYiRbu%U)?~Q+X=SzP)KsYLy@8TRK%b#?k%^kOs*7_gSDYIBRgS?*Ih}Nl4{PB@H>F z%#ej#P+=U>W9x*B=()$d@EFO>^Q_ggSY_Fe!w!whIYl3f+rqpE7zq=6MBx|(EsX1A zWGW|Q$F&o3To={}g#p>`jVUr>0vbLb1$#{1(Gf4qf)!lUk4$L3v7y=XT|aTDoG5>o zv(^MOB3XHAuHQpdJ1U6%EpIyo295ycWOVP#iZ+GZ3Z~1DJ)&m$nXNi*L$f^dWjV{| z)}?_(?6e>H1C?oO7(~jKnh(-EQM#EaZ#dkQDY$)UBGvSwNIR(%zTE2Xxt6x2|2p?G zRTkWRHjg*nLb#1^=>eEq%T*8sD)6&OFtZLon~u{7>X;omO&Mp@;T?K~HMv|WPx+q( z+@B`W0pU{3tLMlXSQ39Y*+giR9eZsbw=Ks2w38`0#Hq*y^xZ+gr^`hI7vU~|W|0TX z7TRsJO|PHHtEh363U5!2W9S-yTbEtbA7HSyljbtRiOYxRTtQeaf7!E(*p(iWe(VKF zkZf?Do^w{jGLSdiy0+p}_)%6Z;%vmzBJ`5&v^z)>C4+v~%hgWzoW=3B gs#hB|+_+pqz;c%^I^X&iXR_HQP1=SLJMHHDUns-WEC2ui diff --git a/osinaweb/osinacore/__pycache__/models.cpython-310.pyc b/osinaweb/osinacore/__pycache__/models.cpython-310.pyc index 7147d30d6ecc210209a7bb071e25670d49d59897..c5d9e4481fb849322bca47b35a53969adda9f88a 100644 GIT binary patch delta 3182 zcmai0U2I&%72eq&?~nJ#Uay_?{=`mfQm0VM)THzic=kIEB*hxVaVf|nNQzVOnAM!dA@L)B1;o^S3Z zc2Z+(&9^h>%$zwh=X_`Gr(-XVMa@Vgjjs- z)ey76^Bygu4@|jogTMK$IO36?M+2>N7ca|s?eM;nR;glGmi$jV7s;`(lNK;32R`R-0Hfjdl%^ujk zqvb+n?s|gzbr0dFN>1D4wzh=)tm&y3Jhr?H0arlK4*7&TBcF)%iLLTa{u}9gSz&vu z8j(-+D&{HMyI>TE`sF8qr+p(V9h9YDuSm(oP3`i%SWvzdq+vTWYLZbpR{4&xK-j|e z5AU5C-n)Oq_SP1vh8-H4FB~&QOGa7Oyk+y4N!W^Z0N^c+$b2Zf<3V)W0R0Rbxmg*8 zfGaFk|0hI1w1}t(xD#&n3}*|s1m#DecNS>~tG59H3^})R3lP-Zjmv=CQ+L}K|4*+oC^bNo_0fzv40DA#$Koeje zU>L9;fQZm2K;2y&J#~RlKxBm(nuPo~@}Qq4q0Y;JXi`kbk?7zgJp_rL!48r!V~|lP z8tU@3z|lsgJ5D-L!t93uY9j?JF@w+d%MYSm;*g5T=g~{zh`bcj+K;p5FgFWFaH2`a z8*#h31tFUz=vB-ph#oF1Ov~FMA$=zIVoObcA z9k6PJnVEb^*CIE2`TTt0G_4T_TO8z2%)!!Hp_qkY4`AI;^sXNZW#xeUZ|mS<5w<)4 zCm!fcGuXZoSVFxJ=l~TR98rrpr>L4%sa7&8bP)5KN)={)MQbWJiL8$BrGfIh2+ri? zui{xT+lW*^UXSmNnJj;jo2qAIvhMHqDng;U5VW>Si_I4*a5G;ebJi%H>@I+swy#*E9!)B#r8LXWC!pK#3>zqi(>EU)6(yA?C*(x3 zd;59Ja88aMJf#bO+dZVGAzN|Dcag_GlkX)v#YN@9zmpS<fK^kd!6v(_n$D2Lzk z_l%AX@n3^+{Hzb9(&CIfp4sT^u&SuY%bDKJ%e?B{)jLE*f?rO$%sXV|KQe#4565F)>^@kbmsvzV0wBzUe80UOGZk;Ix&B(gnnTGAH#+N7+-WB0E3ms3 zL0^Po58z7(x*2o6==J*xln3Oy8^0zNWwk3STe{lCCvr>Im^jPhA@MhPrEA~fouR=h z2cp{Ec{faH>bsGD)S!g3CO9(z$@}r(J2l^pU^;vx{ zC^zt$kt&oZf-2;M!a*Q9ftv*Skh&;b5y4w}o448^ulB~0Lp%)M`ZA6C;>~d{V^)6H GoB1DCxUb#- delta 3415 zcma)8Yj7J^72d12WW6j~e#mlS*KQKkxQ`f`($F@FEIVo)$yidUw+~g;u2aR*u5(r? zu}Q0jrlc?Tb!nJB(x!BPaVbMefHL$K{9p!t(VuMp(4jx*Fg#|MftfH2oO4&P>|)Yd zb3dOw_w2d%o^!r)_gv;rnV=pB_$2)My8NR0&#~u&ad!Hhu}7Ipxh5|q#xDMf&D;5M z%;6#%;{yM3Z!dqQKgcgSZ@yFU$RX8!)S-CQkm6gj$zj!gzVi)9jtFgsV#l9<%`SIM zOG-cqo|cs0qc*u)2`S;zk{mrFEi$E3iJbPxJ!d3`B=_QyT|DiYXeN9Ko9R#H^SM+e zS;*wFdAJrgfJ)z?baJL}D3zQ`!*!O*HB-E+I5!X1TaSUm$!u{dnJN_LGTCXkL1-`e zvbpT|>|AatQ-Hmep*KBQObPEW(RwwVEu`lP$z~>d7)AJe%Wx()oyiw6sXTna(zxc* zg=A(1ZnPeK$zmaQI9JHrnTCC+f)0dr8&G6TcjW=ST2YOUyGdymN*JdZ=R&QlEmct5 z^2a3pbJt3UPG>j}Jd%gOt^ASjATPOhvm5vs_oaa(PMCJ10pJvprhnCRtf*yx1b@}@ zm@|vo3BJoa%J)Wh@~Rh-a^PSwpUI~4`BGtiHZ2DhjvG}?HH=bYWmz?SnR@w%I#pF` zitMQAM|7Yi;8p_KIb`_`-{8JHiCqK+X52|p#Ff_gSK)-z!NGsqGzZrn&tX+&KTJ;}$lC zBibG63b@J43+kc@s#Z}&s$|dQd|OAba!O9`CJ@^Y(9STO=r*ngcd~mhe{uf(;3;-5 z9}mgVV>m;v8FWA^_i(J0s5CO$n+qgPIp zMqY~ieCK%cD2aB0B?6Hs870$MB}$2;fjF2>^AtNdXq{qNH>!=QuEAYo@2YCZ2u*gC zt!fuX_|!aIEdd>g;%ktxM(KJXbAt8gtWUR|95nRtzf=RvQ_?C&+h$?q1NnBRHFjbWl=$5QE?Pn)O5GvVtOYr zVWO?WIw_oQ@}<6h z_MF(zxBF(@RJz%OkF&o17+$M7vPEnBk0Ux?^emcQz_HPwdKjD)jvnlv>-rYXh?5o8 znRNrL@(=oNj6F;G0fJBNj-2+tgfle`CTugh1Eof+N2AnYJLW0{*Ig! zaZ5`(_Oi$MYlwf~@9)U4Cr}>bH|^|Vf8;Ye4>muUEP9XXP41{+FTNtA9WS-ywL2U?TxQ>4N`$}^GAYRMA!e|_+P{mkhoRL^$&{Y5i8%k-$jNEZj_K+Z$pO0OKy*v$gd)p8Jp+j2Km-LM nh{yy`e1NtG@8T-GTpkVeT#JwXjgQ`lGtv>UM|Sg5qw)U&I%wx3 diff --git a/osinaweb/osinacore/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/__pycache__/views.cpython-310.pyc index fd876d2d35261545db710feb487a891cdaf3b461..96c18632a2cda8db967486ae9843b7caa183977d 100644 GIT binary patch delta 7910 zcmcIpdw7)9nV<8`%r}#n$z*aP2~5a^BxGPhAQ*&j2VuELAS4I`>=^S+LPC;>XC@+; zG$~Toda2@R)mm)9E8vylQ{8S6_j%l{+pX(`ZR?J9wRYEPbrogn1#kQQ-tU`9;ECP- zvzcdpdCxiTd2i=E=e*xHcm17s;aTC2WoCM8^f$frj_CH=_WOfcp5s`!PUJ*A#uTGs zpY0ma8Zs)4s(m)qFMjHw?iI#LbgQto*Kc$hJNDUH*BV_$H*q|p)m0Hk+(_`mCZY$7 zE1BMC>@uz*)@Eb3v4>cL_BU73@FC-F9^OIpJ;uFEcM*M`aX-`DL_c60W_qV_#5hVK zdW;8+hvd&60R{NVp z6EPMP$|mZ)nZ9S-1Od%qcYNh@$|h#}$iGyyfXypgX!M8lmCY&;2&vP4U4193Ra^pX z>hmnW_W>RRY@xXoYF?mCY&BJErQV;=H*TrWNQFagWw!SMtzsM40&*L%{5=FT1Gdrd z_2N<*Dk_gB+B!NS{jqpgqAS)H|0fzZ&9yrmjxT+>Y*TY`PKploQO-3}4b1KU>?CLn z#G^gY_C(Z(MEkqiBVC5;W~BU+lhu`a_P!BkF^^6$P!}*SJSc0euxPPv@ zbGD;n?5wNR$mqVl2-9r7v;wE)^;#B>+aNuT@U68A0P6~K85To3WzFXD) z%0ksXX^oC-rTjlWY07k7*g0q~2h0U*1dLrai(dpQ3pT?h#6F;zzESL*Qd#=91uMqt zza!|&YEK(#rycPPwX%4T7*yXb zj_G%x^L7NOIzZeJgA!tQL`M5#GV#rnRl0DC9AWM7JIUdox@2;L_^#SNd2ZG%X;TEn z>@FHD7C%%UO`c}je1Ky%uO!=hJB;`d^!?akDlRKjH8j`ztl)4jCGf<^M1q&K8DN;c(NFaoEzc28sgd%0ai1mq@$yhg`k|6M^>Ml1`)peJ{VFhJKn$yEr!1n4{Et(XikNa$ zl&0LQshBUGS6vmw;%GWzh3Z5_K}up-X<^XXojB7?58p_Oe-N`Wa72f+#ywNjjH<#3 z;H%+C@O2?M`*|hHCm>5wm&B;Nx6|?-vaASK)}$<0T9K#XmAT&c(@YOrOpjJtTMNST z)alAh@1N65k627qRpFE*#C~U0uJ^Mv)1%fVd7!G!WHLADhgJDmf_7Wn+RYC67)i@h z)26P??1ZmE;-BnLd#4V%N6@3oV@j`{o&7laxkpQCGiFj!LF=W}UQwXBs@Lg#7>}u+ zSJ&z+qE~%TT~`o*GVA!X>zbCKf9&(gpQ(n>*tww~^mD4K4Q^yZXYZdx2FecRJ)2HdU8|85o4$mktd(mDDcp4A} zSUkJK#dOWx9xg6|8A(@XG=VBXt^yCARNK{a;h@g8oK)|JXNY5Ja!p7-35KWDx|(20 zU94uF&e!BWs7Gp+iRJ2pnr86})iu9ZbMhn%zNo3#cvtNbNI_+<&i71?Z?D1AVV=PO_C z*%)Q7yFjt)BcSpKLIKnDQG?j)PW7$2ywG?SaXdzS+zUY?>Z!U~@qP7P-8MQr*35pD zR(t9NSD2A`0UR#^P62)m_zmE&Xub#UePT1_G9z0R1)`G$UDa9 zQTY%vR!J7xqgrKBSvj$d1^iF)>YJR$!^(_2=KYw*9T6LXf-ayWVV zt1wEFPe9>rKt&oVK|M*3r@|Lr7T~2yqR;e89k{S$_Sc#)Ua(mHR`uS6bM-T{!{ZHV zU46aBWA{^$;jzotj_;hiM2HvEL-XbpvRji#Thc3|9Z?zWYmZXtxkG(1ZHsz#jnrNs#oPTT=7xNIJWE=}AMvyrkaNp6I$Vn$)}c5>eSl z+n$fSGmyac{|~4?13m=5b08j-@lY=165X5F9@g%78`Pfwd>mW|>K(wlfd2-(4mi*K z2>N&zy$6aHZtRJ1o{tm3^giIUO&wb}QGCd!{c8)oVwrkp;R^AwnziVsVI0P1-Ic2w zD%X`(_RDH&h8&WQ=s`@*B}h6@K*$GF?&7LuWKGg-P|?YqC(=xAI&?d@kBwyCI6}{W z%hCJ5W!(qr#>JDwr|R(H*`iauy0}(+No8N2DqYf8gLFJ1%rlCgr`AwM$aUWS zlxtbK63g>xyB}LJE4UA75TIU<<}+*luiOs$Xi^jEitJqV^s51=% z?dp%w0TSn{^GJ?7&lbMB&tk#}_1cP}+Rre}&-ME*Q+}+^+(zsa?<(G8^D$>cOlxyv&jkIN6%P8(Ja6~n2)O3Ri#>yLp80MEGALZpO_1?lNsri zwc=h{GrHKO7uk@3(nRKf%2$!q)!r~gT24fJvbuHkqh<_(Xk+qy*0zoAg z#h~i{i~;xy)thVT#0pikwoH_$`D-5<=J2w`)nH(YFM-t2D$KfO%q#*EuN5!Tcqj8_ zu<+8cb*V!cy`QINa}Iw&d#>Z+S`ksVU0kD;(vcOU2jVv_t{nRiQ@SoQFif#F-!|Ck z$+^s8Y+YAAhH*kh)aXj^i;L^9H04-;DHiLq=dcc&tf)Bmr&%kAznzMX^q-d~7k!u0 zH;#Nv*b-t;7~&>vNK0tl_JfW?wjq1M*=_H33^@k1Zhgo}=o-=q-9xTHTX%+`?bPJe zM0pN+4f`QMBfiLRrq$uFI{a4KX|=P!b}(>=t`BQO$4DgGYPq%yF}aAzIp|`hjKK_IB1ThbBG>TIggp4#Y#Y=D?Sqa% z=b%p9nFsVCPa=QNX7~p^*VyR=YgVI_6e9E1dmYs80bD+qbr_m_5WNLz2bJ|!DLFuG zs(TXX#%076a5AfXAfAX(fe@h*DlrgG=A=8)m0mJC-IuyD)q=*7;m`#0oLL2Fe3NnA zfHgF$(os8hqpt)|1mKgLkG|K@9QA=ydDIakwTuIhEU9vxI})~X>P|Z%D=BGY6<{iW zy~jJt!r@HL)szc&QWC}&ku;y?vAc!NACDccxB|i>{QU7z;XxyW`0sZ3?V1y>_RNp| zsm~*;Ny|AYoIx^4wwc1H2CWnxJ|~9{It`8T!EV^hES3{!?RBDU-7dpU`P)sD`yk~q zCz{7pIR*O?N;NkMj0(Jmi z2J9iAtDci&1JTL+_5n!`8HscO#_#?26!S`&zaN0CNu{It^MRF)tq{q@9;f3l=i^+6 zb>Pj=`Du6z?53%pP60+OO`^$0a%yryUWGnRNWKkHFUZjg>tzTD$SzJJ%G2uZi|&f_ z#5!XtJ2OxHsWEHOzak0ih}TDH=de=HPj8)5AD0)S)Ohkv*qij zj5(3jH`aT7pQI1iuuzMFL3&Gk>w4=g)y)d;yIx+O>lO3_CBF|tYt-bXpvu{>&dY1T zi*`(PZwOZjGMw%@e$b8#pA7c`)?$?==zdS3I7yKrW9#k>+{0cvZ zb*4Bu!HN)>S>UZBn|I}pi3&{RtGG!WZK|057PaYZ566d3zVVDcsQoR4)u=p@cpU8K$H7lAegb{=w#(y5S9`4Ya{5tE-l1M> z35g5UXDu_uTov9_F6OEAn^tRUoa)X^bz;f!=Qgzq@r0VSxzO_@O}`qU{heywe1PxQ#yk&v5)2a4vsdlZPp2kq0dV0&d;;edjYx^+o zu_oAsCmgv2uobWk&<5xS;KJjhMGk?w4sbo-2EdJgTL8BL6ySS++W>b0?gIQ6a1d|^ za5ujXxCi9DfcpUV1C9b71Uv+I81M+-QNUw>p8=i%`~vVR!1I7t0IvZ)0DKJi5}+X- z`29>e0WN|LetwepVN4bQCIKb`N&uw*{FFrn839TyzO3YQP+>p~U?!jrZ~>qmumpgJ z%L-KSS?&e&x_zK0x`?`L@hY`<+X82XM`#)9nrtOdk9HL5E>v7!XqM>1Wc1ac;qz`hX-!_bNt>N~d?(ye8*X2oA0Z>$NBG|?}@fJ?~{`&OrIo) zAYE&(qw174(M)?&-I>iy^bY=AFf%wbQ@rVlEkQQZ$<$&B*mXLa(kRwK(z2EX4)9O5 z9!ROCfTK&?Nbjb(UCF-Q!Qt_4=^qQoQ1GadprsBkc~W~tyE4+wohSGg3>(qdh)K4y zk=>#b5-FWL`b{+z&>1m*OInZEz-G#wFY$muGTvk|eQML?X3BMbPxR4Q=WS&@nAQi_ z%FyKq`iK4fA-}KNKQ`FkJ?N9$Fg6Inbkvn9-lUVR5`CCE`!(8Isl`kGp1v}(13jARkws`rKv1c>AtS}{ zXFT2v2r(GObwds9%UGVd9z(J7x1(bRh!@y`q27T3pFhL_4_@Ma6;I}cMT?g^>FvT? zs?FRWcG10=8?6(VxeKsc`E7CAGZO^QvT>hHa|tb86FMS!D^bt(eaWjTeLHfCjs zeYDr+ru|tRy!`KFRg3lH%Jy=5Np_7Wqp|EP{dS&aM8|1Fho3pfQjzSV=d$bc9%$}U znjgtAXM*Q7a1Tiq4oZT&gU*+`Xi3gcN&}BwF!7j4<6zxw^minQJL#7>W%^xE_RmyP z=%kEXhxIxZmiM6VUaHCM(~-fvD;~}*s!%Ju0MAj^TksgWYGHY#+m+np%ogxM*d3Zf zXqpOpg4`d&p)s#Gmc#BmTS`}ia6Ipp`@(x7p;T^QMHB8`pRaqYcdI{G&8RF6AXz{cvRq`W{eGFUwypcF<6MKv%o@ODce#f&{vpZ_C_1O;i_VktV|B z;6aXoo9aAE#9g%0Q8xkA;l`JheNREE^*-4D3hX~TEf{|= zE{@iEGBO4Rhy9f!0blR1L0zo^rn>3T0*m#*$kapAQ`yFw1=X=OvS(#D4n+hHv!R*t zW*h`|(ZH-Fy0I_V?W{r-!@%HZs9TXZ#%hf85#halWZLdDWy&dZM6DNEPed#~GA+s! zcNJDdg`9M{FwOdGMDQr@(>(VVn2=X*k&4(qfgN_8{34|lmFs)Z+^a&^R+N_c9C)c+ zD|pvVr_ZA?1`ic^qXu2{c9Grsy@^1P_+YiPbn&=Cpno5qv6U(`1y_8iK~g?JZAFInRQ@@GdvW6Rg!m50|e=?nk(V z#2>C1=gW7Qkp^B}K26)b^HRT#e$}H*X;pJMQ$&Z0e(be~L^|Vb)^Ec25cPIDY02zd zU8xzQp4qjTalGxPD{8#1X-WFWHk+KJ6pNc)o_$0dqb(K1^M^1$4}fKyiXRQ^l=Ja; z9AF2i@)0hd-$KW8bgH6KS1pvLN#I63&@L(_`SD{N)xb;+Dm8&a`-=-~9 zRpM#dU**-m4S^TvMIH;A_*KxZzEbGtHSv9C|J$8;7>vR~hOJ4#`)c z!XAl#yRiT>`nn!8QUS_qKU&IlRmEIT=`YW}*@(>R(Dy^YzXE;&_$lBGz|R0bV(^+H9)&Y1q3QY?R<=oX zVk-JrDv7hvYmFft)ekkXMpEz`wGvbn@u>xN@d}+v0U>@#g@;H?l7D%==6lGX+fP zZ>P-*>-67fTtODmiwow{8w-=fnaQbzONDryauzRiE3b0c(3DmB2mI1M+VAJvtdE8l z*XX|nfp_Sui%YnmzrMIW{VjA%0aUb624xFn*XLQ49%Go6)z8*{g`sy5PFHfUcZa{b ze|s<#81c(wULq#b-7uS8t#^svPoAk?Ej%&PF);z~AAqxfx2bW7YY+CtRKnm0Ur8jG zP3gV;p}`&gDV@((zZ~TauL|HFFhx=SBU*m~d3kBbg3O>RTZOqqSX zA-@`ZJ|b=Ak~^UK6j|k@ij=B&1Ua>w(NiMP*gW5&OG|UapDD9(9^akUG**j``I6|O zTb7yWp~j|4B;*NUR4R~>s~NnBSI2javOq5{OXp2ru&gF0gdA{iuSK&NF9}!7CjPI< zOMIT@(X!=johsSkEN_@dTe&QoXSC9ytN@fBY9UN9MF6@~M!F8Hu=71LWksI&YuKHn zx=)~!Z%gX5Quh7_^2)2V82dY~)?xg3*sHIsn3Z#sOLbfTOgc^_dirjmGuQjFimfGZyk!bB2_i8dle7 zpTyJn>U@#L(f5<*hHGijn)EuX>r_%?O~Y$ZP#Ilj!wEBVzY1kZXxZq_HRV<-M_;Dm zIi0?<=2;^IPCR2tr3}-E^qc5-a^utHrhz>yrh~ zv!jxQu~HRlEw-_URF0BLJjlenS_@rX=Sh@zfu-^G6KL06(`W8@WKyo0loXyckw^CR zZrfF_#!d>f+ikZ-=HyM&In!P=O-FR(TknZTS-{KXO>B`@kyuOlUHL06^EA$NWq;jg*^i{0@p=}o z4y-Oc)VmcQ6)z(M1!l#GyIuqvTZBzG4ka|%by-KvmFMaCjYExu<^q7a%BUK-5RVra zrf?e=Q?~(?&M3W8@x6V)sl@)kNZ;V7Uml>oOZn>e3p=7dH7zdT+}SLA1B~y4+e0OjpV<*YaSfn?D_e`05pu z^N`)u^j>$pcFshFJ>`k>xu?Z@6Rqp{gSbFTdi(d_aF;l7<>vwI0DQcan*qasF+d2g z6L2eFAK-St9e}$5_X73-viD8J_cL@{1xyiAPzynXH)55XqIVcrUNnnnE*E+ z8;}FY1>^zp0UkghpcqgBm z-dE@=`Pvh&&;xY5p#oboniOoesYct%hpw@JrJuy7$0s9Ym&hLwLsoEL zg#bR|MS|(P6ANH>z6L4X4s>DdI-LsWk*xXg_h-u*gV1nx7{sT8 zQ5ptn(O5Zgs2YT@UOR1+TgnSuhRmbWs?^^p{u15TdX$wi7}CgZwrRu>Cs@=sSzmOdYcQbLCcI-`04)mfy@hC*PL+y~@8(|2{`UcwkxTCFTd{FB)6t zr!@~ literal 0 HcmV?d00001 diff --git a/osinaweb/osinacore/migrations/__pycache__/0044_remove_business_business_type.cpython-310.pyc b/osinaweb/osinacore/migrations/__pycache__/0044_remove_business_business_type.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..80230af134b175b50f044bf80af63545b74825bd GIT binary patch literal 590 zcmY*XJx{|h5Vf7Oq@fib12baFLMqV_AqE5s1&N9!if|)}2mB&~~q1p-%~UcjT}6NKSE?19XB2sz^o?O34KgOn6U3 zct9uY(My={2PA5IU>%954Kq0|)2YR3J1fLp0yl=47NB^ZW?+5iuc8eb z@G8K$4LQexnF7RZ&hKZbaz%~_C?FS*k0h9qp%%M&1DSq+a|ue=P#5qc_KlQVn6KRD zb9`%{G%;jS0VpLG5TAj$o9ZGSq)KM{mucb1wUN`2&f-d0oWr~VVv^=#T?gkdtbx-V zuZJ7s1bV!zF7rExHE_xgi$&?-otn7JHoAZ?&tLitMj7?Lf@PJxiagt@PdpUEN@NvZ X%c+rTV1wg&QYZLlh;i@PW_#W@r(C1s literal 0 HcmV?d00001 diff --git a/osinaweb/osinacore/migrations/__pycache__/0045_business_type.cpython-310.pyc b/osinaweb/osinacore/migrations/__pycache__/0045_business_type.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2be11614c231cd5aedff1f18d25db913008e67b5 GIT binary patch literal 774 zcmY*XJ#W-N5Zzs`efE))5XA`u1)_6f2PrftLOCUb0!WI3#*O8>8BTWAA9#I)qlGp- ze}TWWEfs$O358jk%Y~J8G;d~hpWj>8lgXITdV2mHxnS(41-F+Za70^26o3I&tmFwV zMIyMxLOF?i#lQjije$g7xL=*b1uq;B1tO1oiTiV|36%aV0 zt)EjsmT+K+0KVdhgR-C-!9lMWfg~2c2nw$l7k9t~?@Gex%AvVE@QF1r!P_kzaR;@| zt87`fXrAov9~`7Dmh~r07i+4c*1M$JG-&*7-AIeyeVN{zkG3t_2&HisDyuGxtky~q zO_h=^?9hm=4js~Lb*5ETB8}MSe#lY5SvWC%+Sk+6jMJ3n)(R=#OVf|*OxanB02{0T zt7VS5rKe%Wp8=fOJ6gxW@hOSQSJi9W7!Qi9TGd9t!ub7nklAK*JewcSPF|XE-Qd3m z_`%wTbh;0}KgaJiwmQZ#SBOgG8;nm-Uvza7&oh;mkKbgC1?M{NmUS8TX2ca<_Q^mx z6fbcxB-ZM9_uw&^{_KB~qh{0E|7t{A-=p9&;mB+03NHA4F8}z~eLwU}Fi=FW=q(t8 oKe#DI!_O3L6}M9>&ECBeIb@HhX8gm!>=&Gn_9)yHKA$>&0TnOc*8l(j literal 0 HcmV?d00001 diff --git a/osinaweb/osinacore/models.py b/osinaweb/osinacore/models.py index 79e8cf59..317f73c1 100644 --- a/osinaweb/osinacore/models.py +++ b/osinaweb/osinacore/models.py @@ -21,6 +21,12 @@ class Reference(models.Model): class Tag(models.Model): name = models.CharField(max_length=50) + +class BusinessType(models.Model): + name = models.CharField(max_length=50) + + + class Business(models.Model): name = models.CharField(max_length=50) email = models.EmailField(unique=True) @@ -29,19 +35,7 @@ class Business(models.Model): commercial_registration = models.CharField(max_length=50) phone_number = models.CharField(max_length=50) website = models.URLField(null=True) - BUSINESS_TYPE = ( - ('ASSOCIATIONS', 'ASSOCIATIONS'), - ('HEALTHCARE', 'HEALTHCARE'), - ('LUXURY', 'LUXURY'), - ('MANUFACTURING', 'MANUFACTURING'), - ('NON-PROFIT', 'NON-PROFIT'), - ('EDUCATION', 'EDUCATION'), - ('ENTERTAINMENT', 'ENTERTAINMENT'), - ('LOGISTICS', 'LOGISTICS'), - ('RETAIL', 'RETAIL'), - ('AUTOMOTIVE', 'AUTOMOTIVE'), - ) - business_type = models.CharField(max_length=200, choices=BUSINESS_TYPE) + type = models.ForeignKey(BusinessType, on_delete=models.CASCADE, null=True, blank=True) logo = models.ImageField() business_id = models.CharField(max_length=20, null=True, blank=True) # Allow null and blank for initial creation class Meta: @@ -60,6 +54,8 @@ class Business(models.Model): + + class CustomerProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True) mobile_number = models.CharField(max_length=50, blank=True) diff --git a/osinaweb/osinacore/views.py b/osinaweb/osinacore/views.py index b33b4b1b..5e2873bf 100644 --- a/osinaweb/osinacore/views.py +++ b/osinaweb/osinacore/views.py @@ -130,6 +130,15 @@ def project_types(request): return render(request, 'listing_pages/project-types.html', context) +@login_required +def business_types(request): + businesstypes = BusinessType.objects.all().order_by('-id') + + context = { + 'businesstypes' : businesstypes, + } + return render(request, 'listing_pages/business-types.html', context) + @login_required def references(request): @@ -476,6 +485,13 @@ def add_projecttype_modal(request, *args, **kwargs): } return render(request, 'popup_modals/addprojecttype-modal.html', context) + +def add_businesstype_modal(request, *args, **kwargs): + context = { + + } + return render(request, 'popup_modals/addbusinesstype-modal.html', context) + def add_reference_modal(request, *args, **kwargs): context = { @@ -900,6 +916,23 @@ def save_projecttype(request): return redirect('projecttypes') +@login_required +def save_businesstype(request): + if request.method == 'POST': + name = request.POST.get('name') + + + businesstype = BusinessType( + name = name, + ) + businesstype.save() + + + # Reload the parent page + return HttpResponse('') + + return redirect('businesstypes') + @login_required def save_reference(request): @@ -1143,18 +1176,94 @@ def edit_task(request, *args, **kwargs): @login_required -def edit_customer(request, *args, **kwargs): +def edit_customer(request, customer_id): + customer = get_object_or_404(CustomerProfile, customer_id=customer_id) + + #Utilities + references = Reference.objects.all() + businesses = Business.objects.all + customer_status = customer.status + customer_reference = customer.reference + customer_business = customer.business + + + if request.method == 'POST': + + customer.user.first_name = request.POST.get('first_name') + customer.user.last_name = request.POST.get('last_name') + customer.user.email = request.POST.get('email') + customer.user.save() + customer.mobile_number = request.POST.get('mobile_number') + customer.personal_website = request.POST.get('personal_website') + customer.status = request.POST.get('status') + + customer_reference = request.POST.get('reference') + reference = get_object_or_404(Reference, id=customer_reference) + customer.reference = reference + + if customer.business: + customer_business = request.POST.get('business') + business = get_object_or_404(Business, id=customer_business) + customer.business = business + + + + customer.save() + + + return redirect('customerdetails', customer_id=customer.customer_id) + context = { + 'customer' : customer, + 'references' : references, + 'businesses' : businesses, + 'customer_status' : customer_status, + 'customer_reference' : customer_reference, + 'customer_business' : customer_business, + } return render(request, 'edit_pages/edit-customer.html', context) @login_required -def edit_business(request, *args, **kwargs): +def edit_business(request, business_id): + business = get_object_or_404(Business, business_id=business_id) + business_types = BusinessType.objects.all().order_by('name') + current_business_type = None + if business.type: + current_business_type = business.type + + + if request.method == 'POST': + + business.name= request.POST.get('name') + business.financial_number = request.POST.get('financial_number') + business.commercial_registration = request.POST.get('commercial_registration') + business.vat = request.POST.get('vat') + business.phone_number = request.POST.get('phone_number') + business.website = request.POST.get('website') + + + business_type = request.POST.get('business_type') + type = get_object_or_404(BusinessType, id=business_type) + business.type = type + + new_logo = request.FILES.get('logo') + if new_logo: + business.logo = new_logo + + + business.save() + + + return redirect('businessdetails', business_id=business.business_id) context = { + 'business' : business, + 'business_types' : business_types, + 'current_business_type' : current_business_type, } return render(request, 'edit_pages/edit-business.html', context) @@ -1193,6 +1302,19 @@ def edit_project_type(request, projecttype_id): return render(request, 'edit_pages/edit-project-type.html', {'projecttype': projecttype}) +@login_required +def edit_business_type(request, businesstype_id): + + businesstype = get_object_or_404(BusinessType, id=businesstype_id) + + if request.method == 'POST': + businesstype.name = request.POST.get('name') + businesstype.save() + + return redirect('businesstypes') + + return render(request, 'edit_pages/edit-business-type.html', {'businesstype': businesstype}) + @login_required def edit_reference(request, reference_id): @@ -1227,6 +1349,7 @@ def edit_tag(request, tag_id): + # TO UPDATE THE STATUS CONTAINER def get_updated_last_status(request): if request.user.is_authenticated: diff --git a/osinaweb/osinaweb/__pycache__/urls.cpython-310.pyc b/osinaweb/osinaweb/__pycache__/urls.cpython-310.pyc index af4458bc472f70b8c8156762e76d09d2db3e00ee..c31b9d5aa1335a1e3e96a735bcec25f53185d620 100644 GIT binary patch delta 1202 zcmY+DNlX+$6o%;sGcrBhZ-!+?Axv0gam29|6%u1iTyR$mt`y)f(uE8nL#7*z9TWAW z7ZXh-1}`q)t_N{kaXWcITn{FixW$tv; zI<^i{C^>~CQhKEJkHm_kU?vJ`b{oyn&r)wsi+)b`pU6HXaeba^qFS9S>si)9P7<<`Gxr}Y}*EWitF+OMx@GKt}4qF0aeJPV_WEw|7j@Om!o$v%%PQ!=( zNN&kMzn(B@jD7M~dS-~}%%hZgi;eEoff$P_6&^d2H7S*)icWheuN6zti0mjKCh|@y zk!YTXa9>WmtVROdn(A0+w;552rsoPW6MHn`<;1}X*<)Xn8c)8UjI1_F75PSDKaEe# z&_3q<=dpD-ex2zU|tJFSBdijn|eKW_q!!;z@m} zMif!uT9#AquEwc%)kJ-*nBaPr-)>-^B|j}8Y__UwpB)R-EvvE7oni0Wl4PH`c&a0^ zNl+9{b**wIPt>WINcI{;b%5$|v4d>1;GG)g;gd(ijus9>x|)@T zDCUcm{2MtES`@4i;j_deDju`h^APdY3#?~V;k4Au2E&IM%HS)O!xyZ8&o~o4;cR%1 zbKxCo@D}I68=McXu?}A00(glFVH_913#^AR);c|Mco{sy0b6K3^3Rst4pMPIiION0h&ZgU_o#Yp3c8AvsCs>%C_Iy$bwrEZp?F3&Qe#9@ zi4jYV(k@rCU5u&fwA1Gf4Q2G?IMMZdtid_Z7SN4YB9Rkxxm!219hNefRC{E_mC*~8 z^sMgm+gyGlrjO+F&%5gBln|t^gg(2Q^`IVCklu7fdId&U6(gg|igOj4Wekp|3?eI~ zd1Oh6v$h0c?#9--$Oj?Z@gm#OKb{|WiM67ev>Zekt=>;)l=hf)E*f{A@$tW?{ zarF^d5!Q%RDXpc3N!&2bq*)JSDeDANVq7B$qLJ}93v-`VsmW(FVkc##BnM0{TMG^r zT$YtedRFq(#g22loeo3%*}6!9GVgjul2EN z7HBS57=}&G_ZFxb5ID7dBlCY1n~fY&Qr_XHx6o2~yTfZC!Q(Hfur_8Ro*y>bF)CI5 z4r&$b9xB{ttCk{KOa87*dnY#LAW;YTz>1VV@gO%_*SsuQtD-aBCi=^}NEfQE(6Q7BdH}g;n|FrT?n1*~xNhgP$^qfz#_0Ye*iM;{%i9uMw2KbIm@C}>cE4IKgw!#vI z;S09GXN/', views.customerdetails, name='customerdetails'), - path('addbusiness/', views.addbusiness, name='addbusiness'), - path('businessdetails//', views.businessdetails, name='businessdetails'), + path('add-business/', views.addbusiness, name='addbusiness'), + path('businesses//', views.businessdetails, name='businessdetails'), path('businesses/', views.businesses, name='businesses'), path('addstaff/', views.addstaff, name='adduser'), - path('staffdetails//', views.staffdetails, name='userdetails'), path('staffs/', views.staffs, name='users'), path('staffpositions/', views.staff_positions, name='staffpositions'), path('projectdetails//', views.detailed_project, name='detailed-project'), @@ -44,37 +42,49 @@ urlpatterns = [ path('createtask/', views.create_task, name='createtask'), path('createtask//', views.createtask_project, name='createtaskproject'), path('createtaskepic/', views.createtask_epic, name='createtaskepic'), - path('taskdetails//', views.detailed_task, name='detailed-task'), path('projecttypes/', views.project_types, name='projecttypes'), + path('businesstypes/', views.business_types, name='businesstypes'), path('references/', views.references, name='references'), path('tags/', views.tags, name='tags'), path('dailyreports/', views.daily_reports, name='dailyreports'), - path('adddailyreport/', views.add_daily_report, name='adddailyreport'), + path('add-dailyreport/', views.add_daily_report, name='adddailyreport'), + + + + #Detail pages urls + path('businesses//', views.businessdetails, name='businessdetails'), + path('customers//', views.customerdetails, name='customerdetails'), + path('staffs//', views.staffdetails, name='userdetails'), + path('tasks//', views.detailed_task, name='detailed-task'), + + + #Fetch urls path("fetch_related_tasks/", views.fetch_related_tasks, name="fetch_related_tasks"), - # Modals urls - path('addstatus/', views.add_status_modal, name='addstatus'), - path('addnote/', views.add_note_modal, name='addnote'), - path('addfile/', views.add_file_modal, name='addfile'), - path('addcredentials/', views.add_credentials_modal, name='addcredentials'), - path('updatestatus//', views.update_status_modal, name='updatestatus'), - path('addpoint//', views.add_point_modal, name='addpoint'), - path('showpoints//', views.show_points_modal, name='showpoints'), - path('addtime/', views.add_time_modal, name='addtime'), + #Modals urls + path('add-status/', views.add_status_modal, name='addstatus'), + path('add-note/', views.add_note_modal, name='addnote'), + path('add-file/', views.add_file_modal, name='addfile'), + path('add-credentials/', views.add_credentials_modal, name='addcredentials'), + path('update-status//', views.update_status_modal, name='updatestatus'), + path('add-point//', views.add_point_modal, name='addpoint'), + path('show-points//', views.show_points_modal, name='showpoints'), + path('add-time/', views.add_time_modal, name='addtime'), path('timeline/', views.timeline_modal, name='timeline'), - path('deletetask/', views.delete_task_modal, name='deletetask'), - path('addprojecttype/', views.add_projecttype_modal, name='addprojecttype'), - path('addreference/', views.add_reference_modal, name='addreference'), - path('addtag/', views.add_tag_modal, name='addtag'), - path('addbusinesscustomer/', views.add_business_modal, name='addbusinesscustomer'), - path('addstaffposition/', views.staff_position_modal, name='addstaffposition'), + path('delete-task/', views.delete_task_modal, name='deletetask'), + path('add-projecttype/', views.add_projecttype_modal, name='addprojecttype'), + path('add-businesstype/', views.add_businesstype_modal, name='addbusinesstype'), + path('add-reference/', views.add_reference_modal, name='addreference'), + path('add-tag/', views.add_tag_modal, name='addtag'), + path('add-businesscustomer/', views.add_business_modal, name='addbusinesscustomer'), + path('add-staffposition/', views.staff_position_modal, name='addstaffposition'), - # Save Urls + #Save Urls path('save_note/', views.save_note, name='save_note'), path('save_project/', views.save_project, name='save_project'), path('save_epic/', views.save_epic, name='save_epic'), @@ -85,6 +95,7 @@ urlpatterns = [ path('save_staff/', views.save_staff, name='save_staff'), path('save_status/', views.save_status, name='save_status'), path('save_projecttype/', views.save_projecttype, name='save_projecttype'), + path('save_businesstype/', views.save_businesstype, name='save_businesstype'), path('save_reference/', views.save_reference, name='save_reference'), path('save_tag/', views.save_tag, name='save_tag'), path('save_point/', views.save_point, name='save_point'), @@ -92,19 +103,18 @@ urlpatterns = [ path('save_dailyreport/', views.save_dailyreport, name='save_dailyreport'), - - - # Edit Urls - path('editproject/', views.edit_project, name='editproject'), - path('editepic/', views.edit_epic, name='editepic'), - path('edittask/', views.edit_task, name='edittask'), - path('editcustomer/', views.edit_customer, name='editcustomer'), - path('editbusiness/', views.edit_business, name='editbusiness'), - path('editstaff/', views.edit_staff, name='editstaff'), - path('editprojecttype/', views.edit_project_type, name='editprojecttype'), - path('editreference/', views.edit_reference, name='editreference'), - path('edittag/', views.edit_tag, name='edittag'), - path('editstaffposition/', views.edit_staff_position, name='editstaffposition'), + #Edit Pages + path('edit-project/', views.edit_project, name='editproject'), + path('edit-epic/', views.edit_epic, name='editepic'), + path('edit-task/', views.edit_task, name='edittask'), + path('edit-customer//', views.edit_customer, name='editcustomer'), + path('edit-business//', views.edit_business, name='editbusiness'), + path('edit-staff/', views.edit_staff, name='editstaff'), + path('edit-projecttype/', views.edit_project_type, name='editprojecttype'), + path('edit-businesstype/', views.edit_business_type, name='editbusinesstype'), + path('edit-reference/', views.edit_reference, name='editreference'), + path('edit-tag/', views.edit_tag, name='edittag'), + path('edits-taffposition/', views.edit_staff_position, name='editstaffposition'), path('mark_point_working_on///', views.mark_point_working_on, name='mark_point_working_on'), path('mark_point_working_on_task_page///', views.mark_point_working_on_task_page, name='mark_point_working_on_task_page'), path('mark_point_completed///', views.mark_point_completed, name='mark_point_completed'), @@ -112,7 +122,7 @@ urlpatterns = [ - + #Fetch Urls path('getupdatedlaststatus/', views.get_updated_last_status, name='getupdatedlaststatus'), path('getupdatedactivities/', views.get_latest_activities, name='getupdatedactivities'), ] diff --git a/osinaweb/static/dist/output.css b/osinaweb/static/dist/output.css index 4345e49e..493aa298 100644 --- a/osinaweb/static/dist/output.css +++ b/osinaweb/static/dist/output.css @@ -977,10 +977,6 @@ video { width: 380px; } -.w-\[40\%\] { - width: 40%; -} - .w-\[40px\] { width: 40px; } @@ -1013,10 +1009,6 @@ video { width: 55%; } -.w-\[60\%\] { - width: 60%; -} - .w-\[60px\] { width: 60px; } @@ -1955,14 +1947,14 @@ video { color: rgb(59 130 246 / var(--tw-text-opacity)); } -.hover\:text-gray-500:hover { +.hover\:text-red-500:hover { --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); + color: rgb(239 68 68 / var(--tw-text-opacity)); } -.hover\:text-red-500:hover { +.hover\:text-slate-700:hover { --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity)); + color: rgb(51 65 85 / var(--tw-text-opacity)); } .hover\:text-slate-800:hover { diff --git a/osinaweb/static/js/pop-modals.js b/osinaweb/static/js/pop-modals.js index 59e188e2..e1cd5cd8 100644 --- a/osinaweb/static/js/pop-modals.js +++ b/osinaweb/static/js/pop-modals.js @@ -54,6 +54,7 @@ document.addEventListener("DOMContentLoaded", function () { addButtonClickListener("addFileButton", "500px", "320px"); addButtonClickListener("addCredentialsButton", "500px", "300px"); addButtonClickListener("addProjectTypeButton", "fit-content", "160px"); + addButtonClickListener("addBusinessTypeButton", "fit-content", "160px"); addButtonClickListener("addReferenceButton", "fit-content", "230px"); addButtonClickListener("addTagButton", "fit-content", "160px"); addButtonClickListener("addBusinessButton", "550px", "500px"); diff --git a/osinaweb/templates/details_pages/business-details.html b/osinaweb/templates/details_pages/business-details.html index e9071b99..5a16f490 100644 --- a/osinaweb/templates/details_pages/business-details.html +++ b/osinaweb/templates/details_pages/business-details.html @@ -68,7 +68,7 @@ - + @@ -108,13 +108,13 @@

Business Type: {{business.business_type}}

+ class="text-slate-800 text-xl font-semibold">{{business.type.name}}

Related Customer: {% for customer_profile in business.customerprofile_set.all %} - {{ customer_profile.user.first_name }} {{customer_profile.user.last_name}} + {{ customer_profile.user.first_name }} {{customer_profile.user.last_name}} {% if not forloop.last %}, {% endif %} {%endfor%} diff --git a/osinaweb/templates/details_pages/customer-details.html b/osinaweb/templates/details_pages/customer-details.html index f02dddc3..9f199622 100644 --- a/osinaweb/templates/details_pages/customer-details.html +++ b/osinaweb/templates/details_pages/customer-details.html @@ -80,7 +80,7 @@ - + @@ -90,17 +90,17 @@

+ +{% endblock content %} \ No newline at end of file diff --git a/osinaweb/templates/edit_pages/edit-business.html b/osinaweb/templates/edit_pages/edit-business.html index 945570e0..f77c5fad 100644 --- a/osinaweb/templates/edit_pages/edit-business.html +++ b/osinaweb/templates/edit_pages/edit-business.html @@ -8,18 +8,27 @@ Edit Business -
+ {% csrf_token %} - +
+
+ + +
-
+ +
- + Upload Business + class="text-gray-500 text-base focus:outline-none outline-none">Upload New Business Logo
+
diff --git a/osinaweb/templates/edit_pages/edit-customer.html b/osinaweb/templates/edit_pages/edit-customer.html index 6e163d3f..2dfb4e8a 100644 --- a/osinaweb/templates/edit_pages/edit-customer.html +++ b/osinaweb/templates/edit_pages/edit-customer.html @@ -8,55 +8,100 @@ Edit Customer -
+ {% csrf_token %}
- - - - - - - - - - - - - - - +
+ + +
+ +
+ + +
+ + +
+ + +
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+ +
+ + +
+ + {% if not customer_business %} +
+ + +
+ {% endif %} + + + {% if customer_business %} +
+ + +
+ {% endif %} + + + + + + +{% endblock content %} \ No newline at end of file diff --git a/osinaweb/templates/listing_pages/businesses.html b/osinaweb/templates/listing_pages/businesses.html index 31ef27a6..9f424105 100644 --- a/osinaweb/templates/listing_pages/businesses.html +++ b/osinaweb/templates/listing_pages/businesses.html @@ -8,7 +8,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -26,29 +32,13 @@
@@ -92,12 +82,12 @@ Name - Business Type + class="px-6 py-3 text-sm font-medium text-gray-500 uppercase border-r border-gray-300 whitespace-nowrap"> + Customer - Financial Number + Business Type @@ -116,13 +106,17 @@ -

{{business.business_type}}

+ {% for customer in business.customerprofile_set.all %} +

{{customer.user.first_name}} {{customer.user.last_name}}

+ {% endfor %} -

{{business.financial_number}}

+

{{business.type.name}}

+ + - +
diff --git a/osinaweb/templates/listing_pages/customers.html b/osinaweb/templates/listing_pages/customers.html index 741dbe39..5d0e979e 100644 --- a/osinaweb/templates/listing_pages/customers.html +++ b/osinaweb/templates/listing_pages/customers.html @@ -8,7 +8,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -26,29 +32,13 @@
@@ -153,7 +143,7 @@
- +
diff --git a/osinaweb/templates/listing_pages/daily-reports.html b/osinaweb/templates/listing_pages/daily-reports.html index 714b9bab..03e8f1fe 100644 --- a/osinaweb/templates/listing_pages/daily-reports.html +++ b/osinaweb/templates/listing_pages/daily-reports.html @@ -7,7 +7,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -25,33 +31,18 @@
+
diff --git a/osinaweb/templates/listing_pages/project-types.html b/osinaweb/templates/listing_pages/project-types.html index bb3ec194..5e2e8533 100644 --- a/osinaweb/templates/listing_pages/project-types.html +++ b/osinaweb/templates/listing_pages/project-types.html @@ -7,7 +7,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -25,29 +31,13 @@
diff --git a/osinaweb/templates/listing_pages/projects.html b/osinaweb/templates/listing_pages/projects.html index d4a63fa4..ea9fb7c1 100644 --- a/osinaweb/templates/listing_pages/projects.html +++ b/osinaweb/templates/listing_pages/projects.html @@ -8,7 +8,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -26,29 +32,13 @@
diff --git a/osinaweb/templates/listing_pages/references.html b/osinaweb/templates/listing_pages/references.html index 70aae6ee..578d88d8 100644 --- a/osinaweb/templates/listing_pages/references.html +++ b/osinaweb/templates/listing_pages/references.html @@ -7,7 +7,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -25,29 +31,13 @@
diff --git a/osinaweb/templates/listing_pages/staff-positions.html b/osinaweb/templates/listing_pages/staff-positions.html index 2c46dbb7..4e00287f 100644 --- a/osinaweb/templates/listing_pages/staff-positions.html +++ b/osinaweb/templates/listing_pages/staff-positions.html @@ -8,7 +8,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -26,29 +32,13 @@
diff --git a/osinaweb/templates/listing_pages/staffs.html b/osinaweb/templates/listing_pages/staffs.html index 5faf28f4..a02417ca 100644 --- a/osinaweb/templates/listing_pages/staffs.html +++ b/osinaweb/templates/listing_pages/staffs.html @@ -8,7 +8,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -26,29 +32,13 @@
diff --git a/osinaweb/templates/listing_pages/tags.html b/osinaweb/templates/listing_pages/tags.html index 7fd8828a..9ae515b8 100644 --- a/osinaweb/templates/listing_pages/tags.html +++ b/osinaweb/templates/listing_pages/tags.html @@ -7,7 +7,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -25,29 +31,13 @@
diff --git a/osinaweb/templates/listing_pages/tasks.html b/osinaweb/templates/listing_pages/tasks.html index 996e9757..db92b3df 100644 --- a/osinaweb/templates/listing_pages/tasks.html +++ b/osinaweb/templates/listing_pages/tasks.html @@ -7,7 +7,13 @@

Recent Note:

-

Send an Email to Salim.

+
+
+ +
+

{{recent_note.text}}

+
@@ -25,29 +31,13 @@
diff --git a/osinaweb/templates/main.html b/osinaweb/templates/main.html index 0137da2b..05e1c8f2 100644 --- a/osinaweb/templates/main.html +++ b/osinaweb/templates/main.html @@ -167,24 +167,32 @@
- + +
-

References

+

Staff Positions

- +
-

Tags

+

Business Types

- +
-

Staff Positions

+

References

+
+
+ + +
+

Tags

diff --git a/osinaweb/templates/popup_modals/addbusinesstype-modal.html b/osinaweb/templates/popup_modals/addbusinesstype-modal.html new file mode 100644 index 00000000..1fb10722 --- /dev/null +++ b/osinaweb/templates/popup_modals/addbusinesstype-modal.html @@ -0,0 +1,32 @@ +{% load static %} + + + + + + + Osina + + + + + + + + + {% csrf_token %} +

Add Business Type

+ +
+ +
+ +
+ +
+
+ + \ No newline at end of file