From b3f4808cb637d13dd1ccde0253e3977df73836c7 Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Mon, 10 Feb 2020 23:04:18 +0100 Subject: [PATCH] =?UTF-8?q?News-Zugriff=20auf=20Dashboard=20mit=20Buttons?= =?UTF-8?q?=20bei=20Recht=20beschr=C3=A4nkt;=20Neue=20Nutzer=20k=C3=B6nnen?= =?UTF-8?q?=20nun=20angelegt=20werden=20mit=202-Schritt-Logik,=20fehlt=20n?= =?UTF-8?q?och=20das=20=C3=84ndern=20der=20Stammdaten.=20Cropper=20und=20D?= =?UTF-8?q?rehung=20bei=20Profilbild=20eingebaut;=20Pfad=20der=20Dateien?= =?UTF-8?q?=20auf=20Agentur-ID=20umgebaut,=20um=20es=20nachher=20besser=20?= =?UTF-8?q?mit=20der=20Git-Ignore=20zu=20verwalten.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud/__pycache__/models.cpython-38.pyc | Bin 1208 -> 1219 bytes cloud/models.py | 2 +- media/agency_2/FeedbackWPU10.txt | 8 ------ .../subdir1/subdir2/FeedbackWPU10.txt | 8 ------ .../subdir1/subdir2/FeedbackWPU10_Ry9eQsX.txt | 8 ------ media/userprofilepics/default.jpg | Bin 5787 -> 1871 bytes news/__pycache__/views.cpython-38.pyc | Bin 3553 -> 3559 bytes news/templates/news/news_management.html | 2 +- news/views.py | 10 +++---- orga/__pycache__/views.cpython-38.pyc | Bin 1878 -> 1902 bytes orga/views.py | 9 ++++-- .../__pycache__/counter_tag.cpython-38.pyc | Bin 1133 -> 1379 bytes standards/templatetags/counter_tag.py | 9 ++++-- users/__pycache__/admin.cpython-38.pyc | Bin 462 -> 496 bytes users/__pycache__/models.cpython-38.pyc | Bin 4875 -> 4929 bytes users/__pycache__/signals.cpython-38.pyc | Bin 3409 -> 2934 bytes users/__pycache__/views.cpython-38.pyc | Bin 17491 -> 17283 bytes users/admin.py | 3 +- users/models.py | 26 ++++++++---------- users/signals.py | 13 +++++---- users/templates/users/base.html | 10 +++---- users/templates/users/dashboard.html | 8 +++++- users/views.py | 16 +++++------ 23 files changed, 60 insertions(+), 72 deletions(-) delete mode 100644 media/agency_2/FeedbackWPU10.txt delete mode 100644 media/agency_2/subdir1/subdir2/FeedbackWPU10.txt delete mode 100644 media/agency_2/subdir1/subdir2/FeedbackWPU10_Ry9eQsX.txt diff --git a/cloud/__pycache__/models.cpython-38.pyc b/cloud/__pycache__/models.cpython-38.pyc index 8da83454931f0f06194a14021e49f9fd9fea9b89..1d819fd9e1d48dc54901fffea54f3a2d1da35c0e 100644 GIT binary patch delta 38 scmdnNd6<(ol$V!_0SLNE9OE`kvGM0AW&m0?2hacj diff --git a/cloud/models.py b/cloud/models.py index 8df113e..12cf7a5 100644 --- a/cloud/models.py +++ b/cloud/models.py @@ -8,7 +8,7 @@ from django.utils import timezone def user_directory_path(instance, filename): # file will be uploaded to MEDIA_ROOT/agency_/files// - return 'agency_{0}/files/{1}/{2}'.format(instance.agency.pk, instance.subdir, filename) + return 'agencydata/agency_{0}/files/{1}/{2}'.format(instance.agency.pk, instance.subdir, filename) class Data(models.Model): diff --git a/media/agency_2/FeedbackWPU10.txt b/media/agency_2/FeedbackWPU10.txt deleted file mode 100644 index bebf28b..0000000 --- a/media/agency_2/FeedbackWPU10.txt +++ /dev/null @@ -1,8 +0,0 @@ -3D-Druck -+ Gute Struktur -+ Shortucts -+ Planemodellierung - Als VIdeo noch ein - -HTML -- Erweiterten Kurs - diff --git a/media/agency_2/subdir1/subdir2/FeedbackWPU10.txt b/media/agency_2/subdir1/subdir2/FeedbackWPU10.txt deleted file mode 100644 index bebf28b..0000000 --- a/media/agency_2/subdir1/subdir2/FeedbackWPU10.txt +++ /dev/null @@ -1,8 +0,0 @@ -3D-Druck -+ Gute Struktur -+ Shortucts -+ Planemodellierung - Als VIdeo noch ein - -HTML -- Erweiterten Kurs - diff --git a/media/agency_2/subdir1/subdir2/FeedbackWPU10_Ry9eQsX.txt b/media/agency_2/subdir1/subdir2/FeedbackWPU10_Ry9eQsX.txt deleted file mode 100644 index bebf28b..0000000 --- a/media/agency_2/subdir1/subdir2/FeedbackWPU10_Ry9eQsX.txt +++ /dev/null @@ -1,8 +0,0 @@ -3D-Druck -+ Gute Struktur -+ Shortucts -+ Planemodellierung - Als VIdeo noch ein - -HTML -- Erweiterten Kurs - diff --git a/media/userprofilepics/default.jpg b/media/userprofilepics/default.jpg index 86489159e6f591b8af41b3fc11ecc9e7b2a08c6f..d47174033f6204d606cd8403cfcffac4d5a0e111 100644 GIT binary patch literal 1871 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<(iUwW$pkka<)WpdpCN3cY31zV>gMj@ z=@lFj8WtWA8I_!pnwFlCnN?g;T2@|BS=HRq+ScCD*)?hMl&RCE&zL!D(c&dbmn~nh za@D5ITefc7zGLUELx+zXJ$C%W$y1juU%7hi`i+~n9zJ^fi6)>csn|(%EH?7pN_^`Vu?k zg6WIhD@B!F7s%}i{?D*YcW<^EmcY=|ntN?2>js5w&%TKE7OuYIQ(yjRZE)q1;^}3k za>jQqJqYYFySOEAOJHN{T9H6kG$hJ%UGVn8%m~Ja@L5MD8+zDy5j8)gCYiBcC+B|NI zS$yKsZja}xy{a&iTt#nPL~~BeyRC)K&M5~U`nu*6B57fGbMeeSJ7(@>Ei$&8Rz6|g zvY7}|FpLb<^^4a!d49d<>HggaWg-{>5wYt_i`&W@*A#vu`xxE(qUT=s?|K-#0oiqn zc1Izc3ikNZukQEDYFAB#dsHM4J$gN=q@KJ#mmhPr3P~@zK@<1A{1vWPQe3Y1eZ>lR zkS^*%59OTsuWrALDLr_%zSrYr{~7w1|GI<}vlzj4UD8eN>hU{z zr&o&KLkeDua0~WkW!ZQ@^wfP3^L3|+_^a09u|7<1Ystxu36E{Fg_j})jVpQ}7tgx> zrzR{HpOS>vot>h4vz3sOKYHkG+npov~iVvY!hZszSZ+B!I4C*L6?3 zZCdf9bd420WqlFXB5s+<2*zx^I%nHv11+yIrPUJ-7KJoa&q8R!a6?zJ+d6|&{MR;Z koiW9MYXw79n7~U!^r6R!NMIx|UaGEJ*}Xu7!T$d@0rd&@6#xJL literal 5787 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 PFzkOp
diff --git a/news/views.py b/news/views.py index bc261fb..c9c408e 100644 --- a/news/views.py +++ b/news/views.py @@ -21,7 +21,7 @@ class NewsManagement(LoginRequiredMixin, ListView): news = News.objects.filter(agency__pk=self.request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__gt=filterdate).order_by('-created_date') news_arch = News.objects.filter(agency__pk=self.request.user.profile.agency.pk).filter(go_offline_on__lt=filterdate).order_by('-created_date') context = super().get_context_data(**kwargs) - context.update({'active_link' : 'newsmanagement', 'news' : news, 'news_arch' : news_arch}) + context.update({'active_link' : 'dashboard', 'news' : news, 'news_arch' : news_arch}) return context ''' class NewsAddNews(LoginRequiredMixin, CreateView): @@ -57,7 +57,7 @@ def NewsAdd(request): new_news.save() messages.success(request, f'News gespeichert!') - return redirect('news-management') + return redirect('users-dashboard') else: normalForm = NewsAddNews(instance=request.user) @@ -67,7 +67,7 @@ def NewsAdd(request): context = { 'normalForm' : normalForm, #'editorForm' : editorForm, - 'active_link' : 'newsmanagement' + 'active_link' : 'dashboard' } return render(request, 'news/news_addnews.html', context) @@ -98,7 +98,7 @@ def NewsUpdate(request, id): context = { 'normalForm' : normalForm, #'editorForm' : editorForm, - 'active_link' : 'newsmanagement', + 'active_link' : 'dashboard', 'news_id' : news.pk, } return render(request, 'news/news_update.html', context) @@ -118,7 +118,7 @@ class NewsDeleteView(LoginRequiredMixin, DeleteView): def NewsSingle(request, pk): news = News.objects.get(pk=pk) context = { - 'active_link':'newsmanagement', + 'active_link':'dashboard', 'news' : news } diff --git a/orga/__pycache__/views.cpython-38.pyc b/orga/__pycache__/views.cpython-38.pyc index f1cf44f4df5d2eeff7c9de9e7be7a9ac422e0560..dc9bf9d41918d07114c5a3701dfcba8fb77fcf98 100644 GIT binary patch delta 150 zcmcb{_l}P@l$V!_0SGuZIL28|j sWMI}{)L>#^=3wMtWMULzdjJ3c delta 126 zcmaFIca4uXl$V!_0SGSJ*vCmuq16Gh8pG+c5{YW=FKx0TNy>AKn5~vFlsQdFmo_+FbXkp XG4gD-VCH3JRNU;wrpm}H&cp}+I3yVa diff --git a/orga/views.py b/orga/views.py index e066fce..2e97410 100644 --- a/orga/views.py +++ b/orga/views.py @@ -17,9 +17,12 @@ def mainorga(request): # Check, if parented users are invisible. Remove them and give user an info! for ele in nonvisibleuser: for vis in agencyuser: - if vis.profile.parent.profile.pk == ele.pk: - agencyuser.remove(vis) - invisible_users += 1 + try: + if vis.profile.parent.profile.pk == ele.pk: + agencyuser.remove(vis) + invisible_users += 1 + except: + pass context = { 'active_link' : 'orga', diff --git a/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc b/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc index 89b03f787d16e32ccaa445e953982a28678e1586..321d86b11ad852c7cf1635a06fa54b0c1dda0b1d 100644 GIT binary patch delta 727 zcmZuu&ubGw6rMLbyV-2^R~kcUC@2cTwpi%JlL#W{q0o!;vWR8d8RMqeB+P6?A<~1r z<`CwttzP_Bym{VJ#ghmB0x!N9q>8xkzW3g@Z@%~D%@6-u5FbQQK=A8*e(>z0yNWmA z-D-Q|v|>2}!U=cAZsp}35CP|{3zGYs6m8*;0?xR5M&3f+v6;tPHVbX$^R~?*%wit! z&JuXY1Is0ri!2xO$a1OW63eB$d$w(ayL{~l$$H<-co{T)EvnhLs6|E__pzMLXAL`0 zLax5-L7+EbqA#JZ-$VaS3lB(htG}RwY2yt={j!iT#)={kM@IT9+#Prr%l{tJyL1B* zy+@xySAU`p(?7aKQl|PRojzK}uwgSHtA?q%sQ+m!2l#&rP5B6fGKhgep3HIlaxye` zIeJ}kUC_bl4J@e12u5^4I4t1}UC@y;VhiAO3Fqzw!KFC+xDYx!kzK6LJju|>o`Guy z`Us8pyd2j;HlBD@s#;}ELrdPYZMR8LiM(Ul*VE${;`roh;M+vnRkcfXSc&RL$Xygu zrU9Wb$Xn?5vo-y}+3DN1d1z$RPBrCXtfZ?io%MyeW)r9qA50w9#ZZPw$jCrq;JSg- ufZ2={y_(?ntJx|1dnh{}i~E3O>Lx-6DTLrthD!`wG=}B{5F}{EJHG%A8JXPx delta 499 zcmZusyGq1B6rG!$ye7{|iHLnxTssjFEi5bqEyN~>5}0vWN!&2WZfl{~ZL!P`Xz7nw zTc@>B&|lD-X?%|#@XYS*TeLCS;5HNygv%i1wLFeHrJj~aVTOge9UO`JUGl2+r zw4O+2bCNs4zIHj~<~_NCjA>?ZTQg5Hhr62j$O6u|Hv{f-rnOLOf!0DEXf5K=DM{n^ zZi*CIrx9fp6nP_%n1^yaspelt;Hn+C0Z%Px|T` zwpL8c<-gz5iIG64M#eeB>cu#Sf9rN7Wu%hcczX%cmR3TREv=ipS?I1^3BLC+Y6pQB z6hfeIoW^QK2XW?4Y9Z@EIp(6MB~`C)#SpbyJ%}+_qDdL!{%c#J}IoXd< ZjExT{SHw3ti!ne<2*~7NlwjmRfdG}BHFy93 delta 203 zcmeyse2$qnl$V!_0SKC2+s4^X*N@jC!Up))MUKH5>S+x52U#QQj2mki;FY! z^ZYb;M1& diff --git a/users/__pycache__/models.cpython-38.pyc b/users/__pycache__/models.cpython-38.pyc index 97840063f9cecd8dff5b95da23d635f48cbc4c5a..99b664c0225f7cc2350f4e4ffdacb66e7fd28dea 100644 GIT binary patch delta 2058 zcmZ`)&u5~Y+vLX;qtB!woa)KOb^li4^Ubq3byw1yzjj?GduIX z=WolumE&vicvOMU#P73TeEMB{YgeawQ=?ilMq^EjT0~(AGaB(`f+k>WI@)$}KgA+X zNHxu(0W0&;ih=LQvZNJfi3bYpV@Z~R-|RJorCH{I!ZHro&fV8&KQMhP`#@P^*+VK1 zRF3sSQ2!xQ04C20z!VOdA}g*am4O3%g9`D(O_w0fcA}Q72dg8y&%e= zAI2tt;uVC~!s0cjQ*Cd#9k<%$jVt2s&}U>!%!QZ2IgFkZ--jPfj^l)8o4aj?ckb}1 zSLcy4W|1oZjEEIuT%6T%LKsW2A}|Lx(05GyW4wF1jKficH*ALEI?H0-9NsyLA=3!w z5LASB5XJ!f=z`0gdaZTcxg*!~jT;|-v^qbx%KI?}rwP30(f%%h<2pQE7{DY6k|O+) znAWnp1`spoxkwbnQ7B;wRiUbNCj=N~1imWM_CnME+mviXvN{U^iwcM_j5GFBYQ18` zWkv#{VU%R%o=#JeO9Mt&WKZ3t85s6~bg~c@+tX+c?4t?$!ODZj+9R|eJs>2olMq=9 z_yz*wV}bE;IZny^!2o~akl)3LhXRh1frQ}zf2yZfdb+1lI^vXi;=E62nV~lFa2ed) ztT&w1<%-U)z@f^j_4QV_(U7%GV{Mx|txmNI;*>F$4}kE8g|EF)t23K4)D^R zs!}I%A`lv?K!*0Fzbw9v4(CoGSwg^~>@k2ZC=AJVsPh{!y#LW`t@Y7AIp(P;+NRgJj(2DW~%A1x;@35O}pFZoY`*IDw-dv zH=#4|Gr0WQ)F_qpqwuU!qB6<@8W2BO<=tzTI)g9^;D>vMC}lw-AmJ9AT8qKq;;`wi z!xeBmJl|ZIU#%{$EiU@{X1BE=CDT*Nd7LeefU=*o0uS1QEE}_zBB0hQant|&p>e{Scrw808`M{ z4Q4`LH}9)7%_2}vQ9m{-oAfpAcH0~ZMd9-Rt9$`)ftPU3XT{_Taz1cg;PPXz>1N&Y z>Tb(>Q#bJSC8uLQ7bnw$yDN~eT*(BF9GG6)S;Ucvums?TYH}kpNMOH{m(e>-Y)~}W z>;Eze>zB);jC%GhXVc~Iw?xglSG8HQ-r~3{ZtYyKUCB;*6Ffh|<5>VE^r;kdD~nhv zN6&I)K>U?<#V45(iHdufp^H)xvSZ_I`k^KK1MKY&OMv5j$khLxg!nTvWyCY1nPTSV Ef6A7;pa1{> delta 1933 zcmZ`)&2Jl35cgYut-W4OTtO%=3-izbZ_L^tA zRfe*iPjq1m9s*8Xe(}ngu3%!t~JGil^9fj5{b2Cs4B~t2T>@<6CVq?!>3pn=Ni_v~F8XChn1u zs1x~*LI=?%k4TUBL&^9)y#CRV=u!$KC0Eze`k7!$)!9RF9A6I^{Q2WaO?-UsBp;-h_8J^1r(i7yHT|*YPM`X0D2i7 z`8y85>xl5Y_{%q$bxj4d6EscOj%nT$Q~oETV?gm25&q|o#oQ( zostu<%B;SzBS&)W^>mSw5WfIVGXS8HD2Wq3iFYFYQA5fE5l^H2yMD;k5LMvsrM?5d zfw`+uKj?u2#fY5IbkI~5MQ@N|GQtQZ0vqmB z+8!|qGzI08hNI^8W~Ivbn{a?7Lu*)^)mvs8N~GxHQ$Wfrb$s=9wdzDTt6D8a&AL@% z$8Ui3NRc@&or+%h;)TORAI7Qz7d~ChGR>`5$?)s@k^wTy@#>W2)6;8K<701gi!Uqo0zMP zx-wfbmsS@R9N%WUz9I9S-@%9*2w8+h07KodYYpjgORVX?zJ|rbG1WO9`^9BD16Br4 z^BREajSCvRN@lQvNlAPgot=PA8l)<8Qgu%;;xq(l5O%a_S!i?IZZ~8q@Hq%C@p-_z zydb;WeC#*!s%yt!ax`cnwMw&DvFpwA3e@o}vX=FOSWe`3S0P}jm~bB&Fr8+wgc3GD zz6{{_%W@&|B(V?4Xc%#58xbEzeyP|i@=06aVexTt)X;!({ALZd;Dj)THY==3p&7U9l@HpilkKv# k;=MWkMf?VJt`sku<6X#c&#nX(BDAjYU^F?B%q8Fc7yH?)oB#j- diff --git a/users/__pycache__/signals.cpython-38.pyc b/users/__pycache__/signals.cpython-38.pyc index b4d6f097ca8e0f5696ab12b19293fbfc90336089..3a5da63a6f437e17c63293db6c40a555f1602ca2 100644 GIT binary patch delta 826 zcmZ9KO>fgc5Qejf8#_*uHlJw6-EynLl!U6D`hodJjOC30UT%oDZUUC5GH zKv=1$^-vL5)xOg%_SFZh#Q=#n%M*^v+8epepS_7)m{7V{O?QEFRInD zLC?hpSMRPptS-Y}53l@i2c#n^N2aKW>F5Y|4$q_(gZjRQv+2X5-drMSFhe6@1msR~6+r5;;_Ls9-X zb>ixyTIxRrFuuN(I*+Cw8(;{75_Go%OWUJFqIRRU?6)3hcNn4Ut7B-+4so#C>B=xH zOkp_ON1t*=AOxWO)wUY9PVqY zEBo3Bds0QZGL+csBuQt`Pq50KR$D4v=gh(rHf=>hXgi6%kwFP(*wOFw6BYGaQhUXw zLc9C-BWx$lN*?}7k$uxwvNvR<>G6zeYg)1^3!V2kHgGjtHMcfu#X{kv{t9iAa1DlO z!@SdgDe%E2HlSwW%cN(&!RA#wN3&xq&k9#)ju#lK&v21udWv&@y7Dq9iAgX_y!_*# z`3pF>L|@rQ_8+jGtvcfcT%d1!iIJb6-R&d_FJ(VDYj7_6+qniS*@n9T7qXUn{meT1 zy-Co1FKLH+s@FZ4K=!M92F_=Hx_4kFd*AzPCtrM#gLqr*3OW$FpMaI;5}zkq*q8T{ zus=|p-A*e~d|P+P^=S#WvnQS&<9UugMfk3x?%TZ!z9x zyu;We+{AZ@&2n*X92VHP#@4*NS9$g+A(+XJq&T6xh@#!N6ud;xr99tW)ah!Q`xLLU zX^T;3++s{KZV)E!)FXRXW05a((q{i(XtT;alni!@^svF6&(0mU^Xflg@wo#mFC;_+AXe0Ac`v1VUP=e1xyk1>Jeo3Ud5l3J(JFK6nsGd;hvkY#oxGw-+O z-h1A?=brOB=iZlh4~TvHMaia;l7NH$JXc#E`QN#cxxRppS}W)=FQ^B7kBT$uP2b}S z^x#0zfTP>h?e6yIrFv-CvnMbR81bKQ2!|EW$LVkh_ zW7)9SQ#ugn9@||$QZ`U}g7lvhJNxO~@pw1mC#f8gK4F6+Qjv8RO%>sYN4AqCwm)gc zG(DZn$S+Y-!aDh7g6zz|Cqk@K3x|*zj|@ZWp9GU+9N7m+E}xVL|IE{Sm;o2XWn9UEK)J%hk5?K2H&rnQWgFw*3jh*J(>@DYMYQ0|0IC}CK! zTWiK>9Zgn3C2uPGtk7Pl><4_CAmWxL{n*|eyET~zoAMw=u!v+wvCVAmF!h~Kd&b|l z>gyQo2Yds-YYsqyiW~&wx0-kNAsTp|9@9-g?)Jz-*!SQfY8sBH&>c~y;flI-p*wX~ z!WH%C?x=Uaqf_V}-TSyd>SNib`$_iiceowVA|hmwUAhUbS|JVcG(?G@vKJ-z(_h|b z8kUvJB+SN)u^WDEH0L(P1&z_4I$pl0Wrzd`8bn;|+T2#)pwljPkURnncFq_0|CtO#qFgpo25R(;Oo zF05gwWfgUUNQy{_tUyl+@I|5Q!9Xt{1K^C91qtksNP}D9l@>bs0J{JMTY%<8ddwh! z!#Tzo@(I7F6=Q;GxUw#G*Ld$CZTU?AM;_DMJ^V*$^ejDQfB@MR5N=n{Baf=$s*@Ab z)OlJ+?C9Uc1Z@<{Ot|y%>oP36)YYnKA*4&hX?y!(ojo!whm^B=Mkik5gycfBOG_nn zxex-3W`2h{T0KK_sNrCxx>o(v{O@5N zFj>ApuqNV@1sKJA!erT|T7N zOj;_s)bOOm%?cggCy0!<-Fh-^NjTH?q>`p(O5Va9t3&x~faue8HSJpsgb(& zNP%B}fYC949|D+p?3|b2-m2r&`A>RA8Riylx8Ey|tCsMe8<;9j;k~B;oNMsG=OM1N zv-71^u2O62tHfc|RX>H!fy4C+2J@bH7B7RLx7^kK;6p1nLmRpdc-%2y{Z6|ZEUojh4IjbMy-u?o`Y;Lq9j;y*lrEQSSKZh480r`F9^*b=YRfTuJCi59GYPanMNo+6WTc2U_IU>V&tBxQN z$n7Ufa@1q>Xu2K^@K3DIRA;7!ygz~JS@q`B+2Uc|m1|nFxJYL~EEH4yV!b%*;f81`PfsT0C;@YKuu0IL3gFl?3v@I&j98zF4!es9#8mkW z#;*W=3HTM@*MMAp{ik8Rct_2d{o@emD@Oq50B@^LXEz!@B{5Q3m^!S$iS6v?PS;v;JO}yg*n>Z!duWQxGxl<$XPqZjEHyy0DQ%lG{VCFvp z-Urx#->ZMjZ5JP?h4VVZIdy1Wq-rm96Y+RC7gVq&9c9}%r*F)gCO*u1=g)K2j$jbl zxdZOjMV7suR+|<~um1(cJ|du9vCWX>+kmTpF7?8Ky6Fnyj{r>sbcPQ>E(oKgK3XuN zus#&HfQ@Cd)0lz7;xT(uNh)btZ?BQjZC5g5$$E@3wI-8f2l$-mOw#v>+=8Lg04_Eh z;|*wXcDLkNSbUHL3wOFCcW5*}CO*#E%?CvB5azJ}X_a1d-jDO6e@Y~v znif~9mc<_RmBnQup<;_a8{|Oby>t>UZ3g7Mxg1T-t$*H&w%uR>I5@6*`CRd=4kn*rl4-rp%@HZT=gE1VN-YM_$(DQk}0i_dp3> z5Arzz+r4__#@1Y{!_=m0HP;nh;J47S*wbT|MTA3%mX&H~+5Cy{pdG>oa-Y>jpK!@I zU21jafc%rXzN}HWNZ0hzr?rDRaOoLtsTS_+sTPmZ`x&PFm&z_58r%*s4%iDg1UL%d zP#lAVyN`SYa1nrGB=>px7NmCo*8#r+ya)II@FC!1z)b-C%fKOB05_l+ea#M49S*8D XR%|YQAXMiRfr@culKPI+!)7Wy1jk`%24M`uj>UrAL&AGCRs;^y{%nEpxW$x+n;e&38qe)Yb8l3Bpk4O2&x0>Wz}uT_I{|A5=$6 zXH;z>QC1TyN5`7Z_0o^>QlL{^FFoKiN!+GF-lK~lS;c`sFshkm(1=C@0XY{P8QqZP z0b2-|z;qMb!Xb);!zQ<6T1L$mqE98t9;w&RZwjyqSPiTJIso`uu2pZBHO_@~R(>!M zPZ`}Q`3#l(o=`ZNGNi5%_M>Oc2A+N|)jh2qF0T@MRieH|b(NoNSc!f*!75FghBRYZ zTKF~}iP^kccU?bKwKDW63Hv`O{| z8^?AXp}N!R#nE#f-G$aCfgWHSup2-Zxd+ItiM6nTL)7p*eWrszes#)2>TFSsSfJi5 zYMK`kx?3-J%I$aW&vWGY3n*$lR_O+;c9}HDSr8>cf*m0ZNZ2OzL{){#jA>iKemG1u zKD(4?Wpl8`K|8Ne9z`uLkgZ}Phu3yNwTx}^V9)LJQLglk?d+xKw?zv33-tT}A6Hm5Q!|i09|=1YNuk+{!-J3>oF}HjT<`=4ZGZR zZNXq79Z$)v)V^z@`mkhUuMA@tCyI=a=<~`7)Wm=Xg+&q#+kphYdDH+Y4%7ggR_t2j z(op2cG@5n*JAtfgTOhJ;(e)C2<^)2Xt;FV~M6aflFA+B36_bcX^x5vZ-0EyaZQv`T z>pL`D_5!@I(EHWFc8prj(PzSiLrH8ea>`?>Y1~USSkj=7Sn`*Jgyj@p@w(9Kmt~#o zQn$xV@gfU-Hp`U`gc33)`&519v=Dm&*<`uHW?+XF4ePR#iuZ+O&c}!%X@eSP*55zC z!2F~%;#$ne`jTUj!!Q?%9qN4LG|@q+F;0D6d3@E6pa*#)Um&dZ<;xKsszMv`&vHez zEk@Lo?5UjEobFTV{qdFJl={c`olbe2hNvA?>nhihK;FQQ9LgWw(>`^xYJ4FdCL9fG zl&gAb15OKGkmcY5gOlpVsLajC8}H9-tgaGXRy%-p0eoHc)hrTS>b07$^*)CRnBg03 zIrMNa#j$2NqhT{;N?zA}v!nB4z_)-(g5^d02a<-2g-tV@h@0}8Xu~F0`E;Je!||@% z=2$Li#1cDB)}Jb0JAU^eA01-Vl7)m4ha>Qvoiy0Na*wf5%xcmjhF^h3^WU-^v{o!N^kceJ$ZRAo1cN&aX@Zex&9q!*beXt*kojF&Th+r5VKsA z!fC_gdr;P)M=inU$*$)WlKsvUZM^RH@J}FZsvDENu8Zh;PJKDKNo?j-wbsuSm*}<* zl$X!YHFN8hgeLVF2u`}HGk>kugp0j1pjJ#>N5Ow$YU6!7!nRF>PB!&bNNo8eNc_xL z59v3+72q|158}%tSuUL}40=xFTrj+AzTyYPHa%9I$C#MA-8xh9r zW*jfs2tEzzDzFFO!HjMcSq*I3M9Dt0l4=5`Z zifih2)1de$bMoO+q8bzUi%dh4!L4RW(!so*-mYz!ai8j#c}1*L-sb0K4q3;RuuZ(; z5jJs3uwPfJKQ-6;5KjJrtZurlEt}RQuS2s1{2BNQ@UfaSt6khs;aO`%MqQfatK3V~ z6nH$H9bGUd-G!Stt-Z6Sh?|+#*|Tlc>_zm>-jGADZuWXyJw0dY#NVUsQv$7uZH6r0 z1l|X_)H`!(r}B;WbCfwooY}|wh;2-(QLWQPo)05jz{axKacJXhahl0!m`*hIIvJ`b3lw(E&rN1B) zj%!i+t47Pdu+!>4t@D;6N-bwfGq;)Y6AXq|{2s(lAh^{CZj&FNf^RT9ivlsjH0e*9 z`y-pTV*ew1#b+7M+ykPp4|>u-Ts=SUq8nGpuE{=+(&mp>$@xz8E(^c zdFiJZv;oL@b18~^I1ew_azxBT+;ZyaSkkoI(%4Ry1U*P_Z(D_CN=v29Kro>j*%$R7 zG{gY*OmWsTc-l3wnf^jEolGWVik-vr{S&?a1^gTM0=TW37c_`lYV(3N;tLCum*YQ| z!y(nSP!pTf>4kGPevT1>;491qFZUgXTFwhUq=$eIaFSp-R;^gymfh<*D%10wk71tR zL-b0sr`s0!giSRsUZKt{YN>$-Eib)xwRCDL{k<6u(o// - return 'agency_{0}/agencystats/{1}'.format(instance.pk, filename) + return 'agencydata/agency_{0}/agencystats/{1}'.format(instance.pk, filename) # PATH FOR PROFILEPICS def picturepath_user(instance, filename): - # file will be uploaded to MEDIA_ROOT/agency_// - return 'agency_{0}/agencystats/profilepics/{1}'.format(instance.pk, filename) + return 'agencydata/agency_{0}/agencystats/profilepics/{1}'.format(instance.agency.pk, filename) ''' Class Agency @@ -101,7 +100,7 @@ Klasse für die Zusatzinfos eines Nutzers. class Profile(models.Model): # Wenn der User gelöscht wird, wird auch das Profil gelöscht - user = models.OneToOneField(User, on_delete=models.CASCADE) + user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True, null=True, default=None) parent = models.ForeignKey(User, on_delete=models.PROTECT, blank=True, null=True, related_name='parent_user') phoneland = models.CharField(max_length=60, blank=True) phonemobile = models.CharField(max_length=60, blank=True) @@ -165,11 +164,11 @@ class Profile(models.Model): ''' @property def get_photo_url(self): - if self.image and hasattr(self.image, 'url'): - return self.image.url - else: - return "/media/userprofilepics/default.jpg" - + if self.image and hasattr(self.image, 'url'): + return self.image.url + else: + return "/media/default.jpg" + @@ -184,9 +183,8 @@ class AgencyGroup(models.Model): agency = models.ForeignKey(Agency, on_delete=models.PROTECT) agencygroupname = models.CharField(max_length=60, blank=True) savefordel = models.BooleanField(default=False) - - # PERMISSIONS - Über alle Modelle hinweg, in der url.py wird dann die route verhindert! - + is_admin = models.BooleanField(default=False) + class Meta: permissions = [ @@ -199,4 +197,4 @@ class AgencyGroup(models.Model): ('modulenews', 'News bearbeiten und veröffentlichen'), ('modulesconfig', 'Module verwalten'), ('modulequicklinks', 'Quicklinks bearbeiten') - ] + ] \ No newline at end of file diff --git a/users/signals.py b/users/signals.py index 6f0bc10..7e6dc92 100644 --- a/users/signals.py +++ b/users/signals.py @@ -8,14 +8,15 @@ from notificsys.models import UserNotification from django.core.mail import send_mail from django.template.loader import render_to_string # SIGNALS FOR USER +''' @receiver(post_save, sender=User) -def create_profile(sender, instance, created, **kwargs): +def create_profile(sender, instance, created, **kwargs): + print(instance) if created: Profile.objects.create(user=instance, agency=instance.agency, parent=instance.parent) - ''' - Wenn ein neuer Nutzer angelegt wird und dies der erste der Agentur ist, - erhält dieser automatisch alle verfügbaren Rechte! - ''' + + #Wenn ein neuer Nutzer angelegt wird und dies der erste der Agentur ist, + #erhält dieser automatisch alle verfügbaren Rechte! user_agency = User.objects.filter(profile__agency__pk=instance.agency.pk) if len(user_agency) == 1: tempuser = user_agency[0] @@ -25,7 +26,7 @@ def create_profile(sender, instance, created, **kwargs): tempuser.user_permissions.add(tempperm) #tempuser.profile.func = 'lead' tempuser.save() - +''' @receiver(post_save, sender=User) def save_profile(sender, instance, **kwargs): instance.profile.save() diff --git a/users/templates/users/base.html b/users/templates/users/base.html index 43d95d0..0fde475 100644 --- a/users/templates/users/base.html +++ b/users/templates/users/base.html @@ -138,9 +138,6 @@ - - - {% if perms.users.users_usermanagement or perms.users.areas_management or perms.users.tasks_management or perms.user.news_management %} @@ -148,7 +145,7 @@ Agenturorga {%endif%} - + {% if perms.users.areas_management %} {% if active_link == 'areasmanagement' %} {%endif%} - + diff --git a/users/templates/users/dashboard.html b/users/templates/users/dashboard.html index 5f751fc..16c8e77 100644 --- a/users/templates/users/dashboard.html +++ b/users/templates/users/dashboard.html @@ -11,7 +11,13 @@ {% if request.user.profile.agency.module_news %}
-
News
+
News + {% if perms.users.modulenews %} + + + + {% endif %} +
diff --git a/users/views.py b/users/views.py index 3f9a9b4..b48aa17 100644 --- a/users/views.py +++ b/users/views.py @@ -68,7 +68,7 @@ def toUpdate(request): # VERWALTUNG temgroup_verwaltung = Group(name=str(request.user.profile.agency.pk) + "_" + randomString(8)) temgroup_verwaltung.save() - temgroup_verwaltung_ag = AgencyGroup(savefordel=True, group=temgroup_verwaltung, agency=request.user.profile.agency, agencygroupname="Verwaltung") + temgroup_verwaltung_ag = AgencyGroup(savefordel=True, is_admin=True, group=temgroup_verwaltung, agency=request.user.profile.agency, agencygroupname="Verwaltung") temgroup_verwaltung_ag.save() print("default groups created...adding users...") users_of_agency = User.objects.filter(profile__agency__pk=request.user.profile.agency.pk) @@ -83,8 +83,6 @@ def toUpdate(request): for p in perms: tempperm = Permission.objects.get(codename=p[0]) temgroup_verwaltung_ag.group.permissions.add(tempperm) - - print("default groups created and users added") else: print("default groups existing") @@ -175,23 +173,24 @@ class UsersManagement(LoginRequiredMixin, ListView): ''' class UsersCreateUser(LoginRequiredMixin, CreateView): model = User - fields = ['first_name', 'last_name','username', 'email'] - success_url = '/dashboard/usersman/' + fields = ['first_name', 'last_name', 'email'] + success_url = '/settings/newuser/s2/' # Adding active_link def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - context.update({'active_link' : 'usersmanagement'}) + context.update({'active_link' : 'settings'}) return context def form_valid(self, form): # Send message to the site - messages.success(self.request, f'Benutzer angelegt!') + messages.success(self.request, f'Neuer Mitarbeiter angelegt!') # SAVE OBJECTS TO SIGNALE! form.instance.agency = self.request.user.profile.agency form.instance.parent = None newuser_name = form.cleaned_data.get('first_name') + " " + form.cleaned_data.get('last_name') msg_html = render_to_string('users/newusers_email.html', {'username': newuser_name}) + ''' if(self.request.POST.get("sendmailnewuser")): send_mail( self.request.user.profile.agency.name + ' Account', @@ -201,6 +200,7 @@ class UsersCreateUser(LoginRequiredMixin, CreateView): html_message=msg_html, fail_silently=False, ) + ''' return super().form_valid(form) # USER muss eingeloggt sein, um diese Seite zu sehen @@ -346,7 +346,7 @@ def setuserparent(request): ''' class ProfileDeleteView(LoginRequiredMixin, DeleteView): model = User - success_url = '/dashboard/usersman' + success_url = '/dasettings/main' template_name = 'users/user_confirm_delete.html'