From e209b9b8c8834cc1dc1d0c360d4309289594eb7f Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Wed, 4 Dec 2019 15:50:10 +0100 Subject: [PATCH] Commit Arbeitsstand 15:49 --- tasks/__pycache__/forms.cpython-38.pyc | Bin 0 -> 854 bytes tasks/__pycache__/urls.cpython-38.pyc | Bin 0 -> 668 bytes tasks/__pycache__/views.cpython-38.pyc | Bin 0 -> 1816 bytes tasks/forms.py | 27 +++++++ tasks/migrations/0001_initial.py | 33 ++++++++ tasks/migrations/0002_tasks_name.py | 18 +++++ .../__pycache__/0001_initial.cpython-38.pyc | Bin 0 -> 1314 bytes .../0002_tasks_name.cpython-38.pyc | Bin 0 -> 588 bytes tasks/templates/tasks/tasks_add.html | 21 ++++++ tasks/templates/tasks/tasks_management.html | 71 ++++++++++++++++++ tasks/urls.py | 16 ++++ users/migrations/0002_auto_20191204_0857.py | 17 +++++ .../0002_auto_20191204_0857.cpython-38.pyc | Bin 0 -> 794 bytes 13 files changed, 203 insertions(+) create mode 100644 tasks/__pycache__/forms.cpython-38.pyc create mode 100644 tasks/__pycache__/urls.cpython-38.pyc create mode 100644 tasks/__pycache__/views.cpython-38.pyc create mode 100644 tasks/forms.py create mode 100644 tasks/migrations/0001_initial.py create mode 100644 tasks/migrations/0002_tasks_name.py create mode 100644 tasks/migrations/__pycache__/0001_initial.cpython-38.pyc create mode 100644 tasks/migrations/__pycache__/0002_tasks_name.cpython-38.pyc create mode 100644 tasks/templates/tasks/tasks_add.html create mode 100644 tasks/templates/tasks/tasks_management.html create mode 100644 tasks/urls.py create mode 100644 users/migrations/0002_auto_20191204_0857.py create mode 100644 users/migrations/__pycache__/0002_auto_20191204_0857.cpython-38.pyc diff --git a/tasks/__pycache__/forms.cpython-38.pyc b/tasks/__pycache__/forms.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a8b6ffc7f7d073e594de59939943090f71f65487 GIT binary patch literal 854 zcmZuvy>8S%5Z<-dKHtTMB0-ckqPr#~MHHd@Ad)K*3X;Y$vV1oa$I03byEcNf;W1Jq zC9gosGtg{Hf$|E7f*Bu(@UyG^c4mLRZ+3Q$$K#QpcKPw^tIwVgU)Z_d6ggWo>;?e{ zkXlqSk&>P3~vUv0wV}F1q>j9A%ulWA{dd*(&ftEI_n46=1IKW zofP>D>pHKnTP1~0*E2K)HU?^J(X8#D!E%1;;vKZ}Q?h4WU0kkCtF;%V$m_B&c~z}h zI?~Q^LoZTH$65Be z%k^T%a28xZo2Xr=DPnC66@hR|`y~L@)B2)oU3gNW2Kzynhb+MGZF6@cJ+^3Uy5Hym zP5P{vcNNyHP4}ipDU?Oo<{I;YmO7KR{IO~O^XnJyoZ>Wb$aa|^lFIXB-@k{0Seg}D zJe&+nOtTp?JYeV}8}FXt{Cw8D?PFU!p3nb|ZDBp)wUB_{Xt|0b8F~E*QM(Y%^15hx m&Lmzq>wSEN%gu#-Qf!~0{?h;WU9`DK>{Bja%WAQt?)?BOw#~Ev literal 0 HcmV?d00001 diff --git a/tasks/__pycache__/urls.cpython-38.pyc b/tasks/__pycache__/urls.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5229c03d32f86732f661ecb190e9fdcc8ab8bf30 GIT binary patch literal 668 zcmZuuv5wO~5Z$$t*h%bM#333^^eOQ5fDi~Ipn!(E#xjbQ%*yexYlq!62)9Rje?UXY zFKtVK?iVN!GfTvs5NrAE%)B?_@yuzS&lsMs+aGVfM2vkW=lV&|d4#Y1i~tO{Vw#tn zlO3r@$K@#4u^Q`1Inha(pg)4KigjA1dRk6{AE_B?W6mUpiA*3l=Q2H;LkiOie$HVA z^NSd{Y|l-R%lF)ZxH>8`IC#xg%S-Hpt+*fUgxlgh{?N#eb`|-B>guLl8~MI(j0AtU zlSVhzHr-Y5l2dZz4^D)AXJ3j|)KbgV`78t;1JLc+aI3e{*us%)t^ewV+aYrNZ@kz# zt+1KgNxf6T$#pBV9F{?M_bQ+I4ooTlh&&!{UayGJP-@8kWbRe3R=J4g~bAuEFKkq-eSDn(Fs^^`mrKz5Fo1VsLt7k7xDroA)2_9PNkuN+YS1x~!@*;JbVGxFP?pFMtGzvq249L5Bm-;2L~{w*NnPn@hj zK1{xWp-w??!f8cnno^3`shrwPU5nkytNqlkgEXkaG_0dEs(Wd#j?);{J?>ZidXNq* z4ys{2N=Np)u-d4{>6nsxgh#x0N_bDWA~^BVP0+-=51Kw`e9&z1!H*;vz6MW7LQNn= z!-WL2b$>B0njgfIwvd89D4rEf5}5d|6qy!372>Ih?iWg16hAuP=h}Ej=&YzZ{f?-_ zYPW})*R(U^Kg`s=0xM$+?r@I3-!5bgx~LXPWpkl&bZY%^R}(b>AV^9%Ngd&)-U~9L zoO0(hO8pnaBWVCZxn{$j{vd1Mv|2PeNAu^82LLP4hoNqP(By=abVio+SNh!1PU)83 zl9YZKlwlc_Jx+h2&)ubS7ISCma`zACCDd%`fGKYm{Eop&lOHj5ux~ar23WtboH(YR z<+?Z&tSXxGb+(wX?xUn{eAONZX~uJ*S-xnrc%~U-HIwL|2^V{%$h9)Ttf(~X3ni3B zC~dq};q*W*U`3dqJJ2}bMbO&1B%bkAmkCPI)mebXEy8qgy$(fld#hxN7_0NM3~#M=(?b zg3yt3osQ}80wd(viAx6-A;hec6YOJ=z8JQr2P znEU{2c4C6)Llo#u4~D{mN7VDI=Ks0%C2U*g7N@B%f;6-obGQo}i!6o)1l+THi-81z z8Q3saY(5UYu(`QFI%F{VVM#XuaFKLCE(dvB&^Od_cjYGRlVcExE3Y8NB+GX?#ZAQT zqIeI*1cgn54IX!*O2IvZ<$(A2=DL^vszmPK&eek$-9@+6S0FSwqtFxJFgjj3 zBWFwp^!VC^RIDAjf2_PiC(ZH9e-%YNVF)txUi*5CIA$8trC9w?V#!8L7D~rADtksXVYrL10#QLOH zR~x!sg!UA&$R(Cf;yovk0y0E_y(zILOkjIStr`mxpt_hw7p>V!*~YPMuEk{|M6Q|W WcGtCE<1MSO?FNwJ2@H7Mt-(J#aJ%FH literal 0 HcmV?d00001 diff --git a/tasks/forms.py b/tasks/forms.py new file mode 100644 index 0000000..44cf0a1 --- /dev/null +++ b/tasks/forms.py @@ -0,0 +1,27 @@ +from django import forms +from django.forms import ModelForm +from .models import Tasks + +class TasksAddTaskForm(forms.ModelForm): + visible = forms.CheckboxInput() + + class Meta: + model = Tasks + labels = { + "name" : "Aufgabenname", + "area" : "Übergeordneter Bereich", + "desc" : "Beschreibung", + "visible": "Im Organigramm sichtbar" + + } + fields['visible'] = forms.HiddenInput() + fields = ['name', 'area', 'desc', 'visible'] + + + + + #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 \ No newline at end of file diff --git a/tasks/migrations/0001_initial.py b/tasks/migrations/0001_initial.py new file mode 100644 index 0000000..54035c3 --- /dev/null +++ b/tasks/migrations/0001_initial.py @@ -0,0 +1,33 @@ +# Generated by Django 3.0 on 2019-12-04 07:57 + +import datetime +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('areas', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('users', '0002_auto_20191204_0857'), + ] + + operations = [ + migrations.CreateModel( + name='Tasks', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('desc', models.TextField(blank=True, max_length=3000)), + ('created_area_date', models.DateField(blank=True, default=datetime.date.today)), + ('visible', models.BooleanField(default=True)), + ('agency', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='users.Agency')), + ('area', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='areas.Areas')), + ('created_area_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)), + ('usersfield', models.ManyToManyField(blank=True, related_name='users_in_task', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/tasks/migrations/0002_tasks_name.py b/tasks/migrations/0002_tasks_name.py new file mode 100644 index 0000000..3e105e9 --- /dev/null +++ b/tasks/migrations/0002_tasks_name.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0 on 2019-12-04 08:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tasks', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='tasks', + name='name', + field=models.CharField(default='', max_length=200), + ), + ] diff --git a/tasks/migrations/__pycache__/0001_initial.cpython-38.pyc b/tasks/migrations/__pycache__/0001_initial.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ff347341b1a376f3917e514b8221dc48bd3aeb78 GIT binary patch literal 1314 zcmZ8hPjA~c6c;JUmSj0jQm09}>n;KY!wELD8-}52{kh+?yA1>O=aF{XbQDCr_xSjG@An?5%XT|*VEi%p?Yp_}IKLX@ z=I}td53hOv6LT0UoYZ`Afu=ac$jENtPQBEd`l)YqR5a4&Lx*|Hf8{WrdwKBEO#_CW zIZ5Mpz;P}Tqyxq4T9lbeu#To8le899sdQsnFHRaZ)5!Ok>(e3E!Nwq9dEt2xuHnG{nh7vzdBbO=}gE3UbYpL02?6elH} za_up$#^UFei$>qc<-&$T1;5%xPhqL2Ir{ zFI_{TtA3=j83kI9^Ng3wP?Fdzb&f6vkI3b-)2HP8$;s(AI)3LNxYDg-+kkU(z@@oa zIy{2zommp$fWN5M;tAxv5(87$TG)1gr2V>LbfM!1RaJ0WuAHK?N^+5vUqd?^ET?5w zY0O4Cur-BSrJLVAeKI&b9_Y?FEf<5z%(+`@Z(Nm=RjI?Zg^g@iR^{A(XY8&1 kBE7d2kOu%`A>VUcN%stX@a3xYUzrZ80Hy%NkW}FQ2dr9#JOBUy literal 0 HcmV?d00001 diff --git a/tasks/migrations/__pycache__/0002_tasks_name.cpython-38.pyc b/tasks/migrations/__pycache__/0002_tasks_name.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d481111ee86006fe867a4659e3188b41bafe7c21 GIT binary patch literal 588 zcmYjO!EV$r5Vd0`n_X?CUf>gu_Oe&Y|K`&8|Wp<{igOe%*Qi_A`R}A_*Lk`bT7d0k^E<74Nbt zF(36x{%5{WgZ~%Z$Jgsb7;pR&iie z2E5^wK-uQ80T%5HB;-)+GnnlK#Y!lt(LBsg|97Bv`KbLTAC{ZV=CLxp8I86sr?Nrz zy2HS(e-NO=8Q_JU>_`Ol7iF<;#>msd?Ul_D-Mtw?^+)9OoQj|7Xr2A5- z&y%+CK}3K%>;e0&LGQ9ypnL)FD%Nl!!uj!~b_s{Yu)}|=`Oe$}iYD{>?eWw4+@tgL z>%lhY>X*ZI>aZVuee&jg4W==pwx}C&O|DK8*LQ2KY4#^7c@yFF?yHMmSdjWdGNs6F xWG;C|XZc6or0Cg7hB>slZ-zB|Ow<$M6ucvMdwWP#Liy}=3D4tPKF)e5{sQNNn%DpU literal 0 HcmV?d00001 diff --git a/tasks/templates/tasks/tasks_add.html b/tasks/templates/tasks/tasks_add.html new file mode 100644 index 0000000..17a46b5 --- /dev/null +++ b/tasks/templates/tasks/tasks_add.html @@ -0,0 +1,21 @@ +{% extends "users/base.html" %} +{% load crispy_forms_tags %} +{% block content %} +
+

Neue Aufgabe anlegen

+
+
+ {% csrf_token %} + {{ form|crispy }} + {% for field in form %} + {% if field.name == 'visible' %} + CHECKBOX! + {% endif %} + {% endfor %} +

Nachdem Erstellen der Aufgabe können Mitarbeiter zugewiesen werden.

+
+   + Abbrechen +
+
+{% endblock content %} \ No newline at end of file diff --git a/tasks/templates/tasks/tasks_management.html b/tasks/templates/tasks/tasks_management.html new file mode 100644 index 0000000..f38449b --- /dev/null +++ b/tasks/templates/tasks/tasks_management.html @@ -0,0 +1,71 @@ +{% extends "users/base.html" %} +{% block content %} +
+

Aufgabenverwaltung

+
+

+ Aufgaben unterteilen die Agentur in verschiedene Aufgabenbereiche innerhalb der Bereiche. +

+ +
+
+ {% for item in tasks_of_agency %} + +
+
+ +
+
{{item.name }}
+ + +
+ +
+
+
+
Name
+

+ {{ item.name }} +

+
Erstellt von
+

+ {{ item.created_area_by.first_name }} {{ item.created_area_by.last_name }} +

+
+
+
Übergeordneter Bereich
+

+ {{ item.area.name }} +

+
Erstellt am
+

+ {{ item.created_area_date }} +

+
+
+
Beschreibung
+

+ {{ item.desc }} +

+
+
+
+
+
+ {% endfor%} +
+{% endblock content %} diff --git a/tasks/urls.py b/tasks/urls.py new file mode 100644 index 0000000..7919907 --- /dev/null +++ b/tasks/urls.py @@ -0,0 +1,16 @@ +from django.urls import path +from django.contrib.auth import views as auth_views +from django.contrib.auth.decorators import login_required, permission_required +from .views import TasksManagement, TasksAddTask +from . import views +''' +Permissions definiert in models.py bei USERS und dann hier vor die View geschrieben! +''' + +urlpatterns = [ + path('', permission_required('users.tasks_management')(TasksManagement.as_view(template_name="tasks/tasks_management.html")), name='tasks-management'), + path('addtask/', permission_required('users.tasks_management')(TasksAddTask.as_view(template_name="tasks/tasks_add.html")), name='tasks-addtask'), + +] + + diff --git a/users/migrations/0002_auto_20191204_0857.py b/users/migrations/0002_auto_20191204_0857.py new file mode 100644 index 0000000..a4f5c8b --- /dev/null +++ b/users/migrations/0002_auto_20191204_0857.py @@ -0,0 +1,17 @@ +# Generated by Django 3.0 on 2019-12-04 07:57 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0001_initial'), + ] + + operations = [ + migrations.AlterModelOptions( + name='profile', + options={'permissions': [('agency_change', 'Agenturinformationen verändern'), ('users_usermanagement', 'Benutzer bearbeiten'), ('areas_management', 'Bereiche bearbeiten'), ('tasks_management', 'Aufgabenbereiche bearbeiten'), ('standard_management', 'Standards bearbeiten und freischalten')]}, + ), + ] diff --git a/users/migrations/__pycache__/0002_auto_20191204_0857.cpython-38.pyc b/users/migrations/__pycache__/0002_auto_20191204_0857.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ffe61ff88750c85d768445f60c7048ccb57b7af3 GIT binary patch literal 794 zcmZuvJ8u**5VrSmuiT-a01X8vB#LXIy;BemA(R88K#@>{6r2`W-u2wZ$FBFVcaf47 zTK)wMzk`3_mI6`IQV_;_LAf9-&Bz{q^UZiZ9}NaQg6rq}`Oy6`^uGfxDEWEB2D92rsDD`cj5B}-*e7g}E(JnW*G2py0a z6$I01MrS?*i_j5^K!lKpWeSqG-&dl9lAS zZ7+2>mpRytCFnvLrXLK)mo}~sf(szP{a42zkXH%w8Ero zO$FwB!4)zTm~p!G1XNv}f*vNobpo;i2j1iwxM7!p8f1D5{{Sm)-d+OUoYwP7N>S%- z-)HPy&GYk{zJMj*98@a7X#60=UY#PN-Y*5@FIQx?SK^dcT7Mz>I-(l)>-E!z@sU#} zeqQDo==fQg)^2zv-h1&X7BZ6+&%tSe3dGHr#AgvX#8M2iFR0Y|L(o* z<%#yONDIweLD%uUvmgwpM>l^5XU*Ng$hTdwK$XjFku;q*@r&+OyBnBpJC9b+f9zO| Idu8AM1AArg4FCWD literal 0 HcmV?d00001