From ed13bf155beec8a8940b21d26c8a6851a1a845c5 Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Wed, 4 Dec 2019 14:54:43 +0100 Subject: [PATCH] - TasksListView implementiert und HiddenField vorbereitet --- areas/__pycache__/forms.cpython-38.pyc | Bin 1258 -> 867 bytes areas/__pycache__/views.cpython-38.pyc | Bin 4199 -> 4180 bytes areas/forms.py | 12 ------ areas/views.py | 2 +- .../__pycache__/settings.cpython-38.pyc | Bin 2962 -> 2980 bytes .../__pycache__/urls.cpython-38.pyc | Bin 1472 -> 1528 bytes digitaleagentur/settings.py | 21 ++++----- digitaleagentur/urls.py | 1 + tasks/__pycache__/models.cpython-38.pyc | Bin 192 -> 1326 bytes tasks/models.py | 31 +++++++++++++- tasks/views.py | 40 ++++++++++++++++++ users/__pycache__/models.cpython-38.pyc | Bin 2919 -> 2985 bytes users/models.py | 5 ++- users/templates/users/base.html | 2 +- 14 files changed, 87 insertions(+), 27 deletions(-) diff --git a/areas/__pycache__/forms.cpython-38.pyc b/areas/__pycache__/forms.cpython-38.pyc index 8f2aaf56286a68f17c2d65606148ad88bdc1b8b4..c9f46acf804bdbbb80bdcadd5ec68ddb1e9eb1ed 100644 GIT binary patch delta 109 zcmaFG`IwC_l$V!_0SHtxpU3WGoX97`7&KAaUc#Lrg*}C%g&~C_l`)ICnK_Cpg)^8z zlWXIG$Bc}elUta)h1r3+ikW}}2U8ITkn+>yp6tYuKUtJTc=AaWem;<~Jd9At1OPs~ B6xRR% delta 401 zcmZ9H%Sr<=6ozw>ndw|>8EJ*8+rl8|u3J%|BH|#3n}Eo`Nn1-Vl6FyCTDLBSzJRab z8+75qXP9k8(5LXEcmWggpOZiNKa!>M>6I^|$Y(U3-rlcjZN9VLM26631CRjh zm|+Rs2ZpYKo|p;gljEUJj{ofh7+kOP-a}t+p)8~u&NrS3l5|Bx* zM9)G%{s_`0oIs0k){ILBZ9+MPd(g|Kt&tvlyizQI!XISQ>%JOxCf$6|I9Ech04O>_ z+GtV8zKecByJu>WX^)cHd`|}?Y2xU}Y|2K~j5tOrM&kLN*f`Wx>bGf)EfNYfMOO``u4{C<`G*N%<)leCf8isj(WORgUJ=6Y|f)YSM6oP;v5(Q$2Mw>Lv(ix$+ZOLo_IdKqg zUdVXjXuOb^aNy$EvlkLidp03nJbBTR?@a}?!Y2FMxBoZu=DjyNdzku?G9DX7P=RYN zf0+5PZ6wL(?e5GbQK&*SCsr`irnGCFx!Slm<}3Gy+Nllv+?4L5b2BC^1k1pfpjF)@>>2W?Db5Sn+R|hDAI-XF@0IVd6!` zIkU$p#mD{*c|%CO==41z39;eJ4<}%_XJoTE$9CNubDV6Jw}Vze8(JNR7$5|fT5lI!%D(<8ibxAin_E_3?{nrx2|O8BGS4ArnHY`H*QsPcxzgaUS4l`J!94 zi#g^+a*%bI(X0*6?81gz!wWty@j`aZcJg%hoLt3IQL0{{PsIGa@kw1?Zfvj#A$VRg9B4^aetw1qMlQ=Pz~>f>XYKYf16wpu|TdDTfngyM|~JXK`w9= zt^aC&9~fLXH8UK29pD*dR#iNDAf7qJFDi}EmH zOuP&CN9WKyIUpV4Yj`H`6vSDpMGQrD#9X97e2@4iW#&3vwu_6Uo~3emMJ`ua7=I$X h8-bsz>@LR`e+91m9>mRPDjXsq5>-vZY&LbX?Kd;*13mx% delta 1299 zcmZ{j&rcIU6vsR4(v~jUA6rT(SSX0-@=L`CA{ZzN7!Z^Y4mKgp(ixzzrDnDui6$N- zo`?w&X2c;5}I#7Z%1WE{$Do_%jglPnn2q->K>Zw7aTb@hBOeB;U5*MpVejpB;Ts@o3*_Pwvm~CgX{2XXy zoW-aOVF0S(a#Vnys46!^NPRn4gOgE!sqk8i(U3O*_7tANxEaxckZ#gkTE@js^-Z`Q zXBrS^5J~Z_vZ))L+`uB_o!zkPJl(61UapGLai1QccrV4yZeB6(z+7?-1z{iZ6Ew%i>tz-`e_6kapb|{a4SfuXo|ZJaF|@fUB2S z;elwS>fZZz~%S>&~yA(@IIO4q<>lM0$Fra){6uGuz3*%TsBj_23ap| zKAvTdxL$QY8bx(rWb&{;*I!&%VYyPCn&I+m?8mLLRN2Wo7`n<5EAd8*0_zUr&SIX~ z)Kx6o<{|Mq5Fg-4ob<8HoV`w&S;-jg4V)bkvwE{}2g51EG{98( zgm|X2^lelQo5645@D>0XKq(Jlq&n6HbG=|&++h63XB5{a#N}Xg4%^4aI z?{((LFUD1Dw#Fm4A`CFK^7|Y|VFHlR9v1m(er*Yp=66vZM5M)wU{ClShDV3HO?(bc z`R;=_ZJrVBp;r|=DBg!sqcT&Cu2^eJ#qQ-&>4AJ$`LXzw^G*bwJuVLcTKwZ%{(ePU SI28<&Y7$lr-KaM-qva2d7Xa%3 diff --git a/areas/forms.py b/areas/forms.py index 5766343..6032309 100644 --- a/areas/forms.py +++ b/areas/forms.py @@ -3,7 +3,6 @@ from django.forms import ModelForm from django.forms.widgets import TextInput from .models import Areas from django.contrib.auth.models import User -from django import forms class AreaAddAreaForm(forms.ModelForm): @@ -17,15 +16,4 @@ class AreaAddAreaForm(forms.ModelForm): } fields = ['name', 'color', 'desc'] - - #def __init__(self, user=None, *args, **kwargs): - # super().__init__(*args, **kwargs) - # if(user != None): - # users_of_agency = User.objects.filter(profile__agency__pk=user.profile.agency.pk) - # self.fields['usersfield'].queryset = users_of_agency -class AjaxForm(forms.ModelForm): - field = forms.CharField(max_length=200) - class Meta: - model = Areas - fields = ['name', 'color', 'desc'] \ No newline at end of file diff --git a/areas/views.py b/areas/views.py index a7aa98f..7ecf455 100644 --- a/areas/views.py +++ b/areas/views.py @@ -3,7 +3,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView, View from .models import Areas from django.contrib import messages -from .forms import AreaAddAreaForm, AjaxForm +from .forms import AreaAddAreaForm from django.contrib.auth.models import User from django.http import HttpResponse, JsonResponse diff --git a/digitaleagentur/__pycache__/settings.cpython-38.pyc b/digitaleagentur/__pycache__/settings.cpython-38.pyc index 79f6a40a43c63bc8c21f491f8f25af743fd04bab..e37347064192fb1bcb05b31d7ca928c0578a1661 100644 GIT binary patch delta 228 zcmbOvzC@fil$V!_0SMAkpU3W>$h)pyIYlK!HAQU>YbIk9e~NmFMkXVW)C7}SU{X7i zF`Xq!AVnuiFhw^?D1{|T7>GrHSTsd1N-RY`N<76NN+QKDN-~u(i)n#WDqD)tLZ&F` z6yqqF6q6{~6w@fV6tgJ#6!Rzrpf1G}izuZO%P8d(reFppO{>i|jFqfXQ4$`O8C6MD zl}?2vq0V_xIiBS{hK0dJRT-1_vgt6gZ+^wLn3+u%==37p$&UW!r^b0|16S| H!?~$63!Axkx1d{WlWKTib?@RMS!BxU{M*Us4P%a6eubO7L|vJDgZ^rfTD_EQ6;FT zaw;!SOa&~a3KdgJWy=!RNl^!J)48K0QaQ6EComSdq)Mc61KCnQES;j!%Vf?FC6S^T z%%G_?IfL=8BwI;hadxqO6&IM+D=o??t`Y#TH(M~xWMsTG`4Y1&kQ89a0g|;WyV#_G oel3!oY|9#{qXA^{FbXj8z#yj>kRxtghmkuhpA2a7F`bYsZ@lABp}u}J_G7fDPmW{qT2n|zj4Qb3Fm0!0}4 KzOnFdFaiKNOFk//', auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name='password_reset_confirm'), diff --git a/tasks/__pycache__/models.cpython-38.pyc b/tasks/__pycache__/models.cpython-38.pyc index 1927892003330982ff75ec312f90787ca710e95a..20ff2e893ef0aceebe48873d079bf6cd500d1886 100644 GIT binary patch literal 1326 zcmZux&63iYrxfU><;iRKkW06qSX7$;CC4N;B%6^{i}fBs*kM z+{ktBRPh9P10I1B51=atDzCtaZg~g7k6ilvb*t6tAK6dG;~~Srx4(b;YslDdB)mN$ z6dvHT1%hIVYgX}sbK-#xs;~$>4|P<6&)EJz^9d z;Iuy?04um+MF8P8f*5h2_*GCOUQYj#Gh{;*s8B^Jz6y&G$`}>JiPmG34q$>(riQpW zMLB{AV(;w`*%92>-rU|on-T7~jhZ{i^DADwqsHps6)WzliJId3o;t*Ak6gTv_JXp^ znp$AO(88NvFys@*W}zEa@`cb)Z`yMgue7W$T%zDicDgNp9x=9<1qNTt_Bl7VY-xl=Q zYi5qn;*XDyKU`9a?DDflZ@?@cHS4Z|y0y#4pD&iG+?1`^G+_}SlZ1F4kCryKGtowb*^U{_p4dy1EX6_LDT}IESmL@?sz-h@W z4W^u)1CK{M57Nk6%*HNLTUl?Kxmxu#x_2$Fo4PgSYA(C>eBR$0LkSkSPjIjDWgK1a t!IoLy<07Yw?cRv0YTie1@e}&H__O~nY?pr2_wPP^43@s5obR7B{S)z(QYioc delta 155 zcmZ3-b%3!xl$V!_0SNxzeimy3q#uJg$bbpRaRB0C0U(jWkiwY5kjogw$jFew6wIK> z{1Pb2pvicPEjK?UHK*85lj#;`N>*ZCdcIytQV~e=N`@j9AO$9V**aUrgche36~}nw c=cK0=P4;2Z7viu1YA(%5wPOUT`wYYk07+aSmjD0& diff --git a/tasks/models.py b/tasks/models.py index 71a8362..2df55ea 100644 --- a/tasks/models.py +++ b/tasks/models.py @@ -1,3 +1,32 @@ from django.db import models +from django.contrib.auth.models import User +from users.models import Agency +from django.urls import reverse +from areas.models import Areas +import datetime + +''' + +Model Tasks + +''' + +class Tasks(models.Model): + + agency = models.ForeignKey(Agency, on_delete=models.PROTECT) + area = models.ForeignKey(Areas, on_delete=models.PROTECT) + name = models.CharField(max_length=200, blank=False, default="") + desc = models.TextField(max_length=3000, blank=True) + usersfield = models.ManyToManyField(User, blank=True, related_name='users_in_task') + created_area_by = models.ForeignKey(User, on_delete=models.PROTECT) + created_area_date = models.DateField(default=datetime.date.today, blank=True) + visible = models.BooleanField(default=True) + + def __str__(self): + return f'{self.name}' + + # Hier Path für Templates des Models mit Parametern + def get_absolute_url(self): + return reverse('tasks-update', kwargs={'pk':self.pk}) + -# Create your models here. diff --git a/tasks/views.py b/tasks/views.py index 91ea44a..7abdd65 100644 --- a/tasks/views.py +++ b/tasks/views.py @@ -1,3 +1,43 @@ from django.shortcuts import render +from django.contrib.auth.mixins import LoginRequiredMixin +from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView, View +from .models import Tasks +from .forms import TasksAddTaskForm +from django.contrib import messages # Create your views here. +class TasksManagement(LoginRequiredMixin, ListView): + model = Tasks + # Adding active_link + # Loading only user same agency + # Change context and return for template-data + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + # # Get all Users of the Same Agency as logged user + tasks_of_agency = Tasks.objects.filter(agency__pk=self.request.user.profile.agency.pk) + context.update({'active_link' : 'tasksmanagement', 'tasks_of_agency':tasks_of_agency}) + return context + +class TasksAddTask(LoginRequiredMixin, CreateView): + model = Tasks + success_url = '/tasks' + form_class = TasksAddTaskForm + + #def get(self,request,*args, **kwargs): + # # User ist der hier Aufgerufene, bzw. das Profil! + # return render (request, self.template_name, {'form':self.form_class(self.request.user), 'active_link': 'areasmanagement'}) + + + # Adding active_link + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context.update({'active_link' : 'tasksmanagement'}) + return context + + def form_valid(self, form): + # Send message to the site + messages.success(self.request, f'Aufgabe angelegt!') + # SAVE OBJECTS TO SIGNALE! + form.instance.agency = self.request.user.profile.agency + form.instance.created_area_by = self.request.user + return super().form_valid(form) diff --git a/users/__pycache__/models.cpython-38.pyc b/users/__pycache__/models.cpython-38.pyc index 81262ecc4317b1d676b184daa212e5e8a367d8b6..a25dac1c75fa34cc89d803e468f4efe53c41b23d 100644 GIT binary patch delta 145 zcmaDZwo;rol$V!_0SL-`p2xn~$m`6(#R}v(0CBO@#1#RvdmfGF$$ delta 80 zcmZ1}{#=YVl$V!_0SLmMJd0hjk=L1niv`GY0ODea$s1Y3*-}`888q1@S8|k07UMLS b{DwnqawDf5A4n4i6B8pC{@Hw<^A;lj`nwXD diff --git a/users/models.py b/users/models.py index 049e148..3b3772d 100644 --- a/users/models.py +++ b/users/models.py @@ -102,6 +102,7 @@ class Profile(models.Model): permissions = [ ('agency_change', 'Agenturinformationen verändern'), ('users_usermanagement', 'Benutzer bearbeiten'), + ('areas_management', 'Bereiche bearbeiten'), ('tasks_management', 'Aufgabenbereiche bearbeiten'), - ('areas_management', 'Bereiche bearbeiten') - ] \ No newline at end of file + ('standard_management', 'Standards bearbeiten und freischalten') + ] \ No newline at end of file diff --git a/users/templates/users/base.html b/users/templates/users/base.html index 710a1cf..9ab6139 100644 --- a/users/templates/users/base.html +++ b/users/templates/users/base.html @@ -126,7 +126,7 @@ {% else%}