From 906de76651e33383d77e08582673ded7ac28fa2d Mon Sep 17 00:00:00 2001 From: "hugo.boulanger.oib@gmail.com" <hugo.boulanger.oib@gmail.com> Date: Sat, 16 Dec 2017 13:05:42 +0100 Subject: [PATCH] amelioration toujours bug --- Projet/polls/models.py | 24 +++++++-- Projet/polls/templates/polls/eleve.html | 43 ++------------- Projet/polls/templatetags/__init__.py | 0 .../__pycache__/__init__.cpython-35.pyc | Bin 0 -> 164 bytes .../__pycache__/print_rapport.cpython-35.pyc | Bin 0 -> 2634 bytes Projet/polls/templatetags/print_rapport.py | 50 ++++++++++++++++++ Projet/polls/views.py | 34 ++++++++++-- 7 files changed, 106 insertions(+), 45 deletions(-) create mode 100644 Projet/polls/templatetags/__init__.py create mode 100644 Projet/polls/templatetags/__pycache__/__init__.cpython-35.pyc create mode 100644 Projet/polls/templatetags/__pycache__/print_rapport.cpython-35.pyc create mode 100644 Projet/polls/templatetags/print_rapport.py diff --git a/Projet/polls/models.py b/Projet/polls/models.py index 0e6ec3a..38eefa0 100644 --- a/Projet/polls/models.py +++ b/Projet/polls/models.py @@ -44,10 +44,30 @@ class Groupe(models.Model): class Rapport(models.Model): - url = models.CharField(default="index.html", max_length = 50) groupe = models.ForeignKey(Groupe, on_delete=models.CASCADE) nIteration = models.IntegerField(default=0) brouillon = models.BooleanField(default=False) + product_owner = models.CharField(max_length = 250,null=True) + scrum_master = models.CharField(max_length = 250) + events = models.CharField(max_length = 5000) + taux_completion = models.CharField(max_length = 1000) + user_stories = models.CharField(max_length = 5000) + retro_retours = models.CharField(max_length = 5000) + retro_futur = models.CharField(max_length = 5000) + retro_ameliorations = models.CharField(max_length = 5000) + future_events = models.CharField(max_length = 5000) + postponed_us = models.CharField(max_length = 5000) + new_us = models.CharField(max_length = 5000) + it_nul = models.IntegerField() + it_moyen = models.IntegerField() + it_bien = models.IntegerField() + it_excellent = models.IntegerField() + proj_nul = models.IntegerField() + proj_moyen = models.IntegerField() + proj_bien = models.IntegerField() + proj_excellent = models.IntegerField() + + date_modif= models.DateTimeField(auto_now=True,blank=True,null=True) def __str__(self): @@ -56,5 +76,3 @@ class Rapport(models.Model): else: b="" return "{0} Itération n°{1} {2}".format(self.groupe,self.nIteration,b) - - diff --git a/Projet/polls/templates/polls/eleve.html b/Projet/polls/templates/polls/eleve.html index d2f0096..613977a 100644 --- a/Projet/polls/templates/polls/eleve.html +++ b/Projet/polls/templates/polls/eleve.html @@ -9,6 +9,7 @@ {#{% endif %}#} {% load static %} +{% load print_rapport %} <link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" /> <body> @@ -24,44 +25,8 @@ </ul> </div> <div class="right-student-block"> - <p> Lorem ipsum - dolor sit amet, consectetur adipiscing elit. - Vivamus sed odio eget tortor porttitor consequat vehicula sit amet arcu. - Donec elementum sit amet mi at sodales. Praesent ac enim consequat, dapibus sem hendrerit, rutrum dui. - Donec mollis auctor efficitur. Phasellus gravida orci eu metus sollicitudin, vitae mattis nulla fermentum. - Proin dignissim nulla vitae sagittis sodales. Duis eu venenatis felis, quis maximus metus. - Sed malesuada vestibulum magna in condimentum. Duis consectetur sollicitudin dui eu scelerisque. - Donec rutrum tristique eros, vitae ultricies eros cursus eu. - Vestibulum ac mi ornare, maximus metus at, convallis eros.</p> - - <p>Ut molestie mi eu dui rhoncus elementum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Proin ipsum nibh, sagittis et sem pharetra, elementum tempus risus. Nam bibendum condimentum pulvinar. - Integer at lacus vitae dui lobortis interdum in eget tortor. Duis non fermentum nisi. - Donec malesuada diam velit, ut laoreet neque porta vitae. Etiam arcu lacus, sollicitudin ut feugiat eu, cursus non enim. - Sed porta, massa at tincidunt faucibus, elit tortor porta eros, sit amet posuere neque dui sit amet ex. - In vel sem ac mi laoreet blandit sed eget dolor. Etiam ultricies aliquet tellus, at sollicitudin nisi iaculis et. - Sed et volutpat erat. </p> - </div> - <div class="right-student-block"> - <p>Ceci est le template pour la partie élève</p> - </div> - <div class="right-student-block"> - <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Vivamus sed odio eget tortor porttitor consequat vehicula sit amet arcu. - Donec elementum sit amet mi at sodales. Praesent ac enim consequat, dapibus sem hendrerit, rutrum dui. - Donec mollis auctor efficitur. Phasellus gravida orci eu metus sollicitudin, vitae mattis nulla fermentum. - Proin dignissim nulla vitae sagittis sodales. Duis eu venenatis felis, quis maximus metus. - Sed malesuada vestibulum magna in condimentum. Duis consectetur sollicitudin dui eu scelerisque. - Donec rutrum tristique eros, vitae ultricies eros cursus eu. - Vestibulum ac mi ornare, maximus metus at, convallis eros.</p> - - <p>Ut molestie mi eu dui rhoncus elementum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Proin ipsum nibh, sagittis et sem pharetra, elementum tempus risus. Nam bibendum condimentum pulvinar. - Integer at lacus vitae dui lobortis interdum in eget tortor. Duis non fermentum nisi. - Donec malesuada diam velit, ut laoreet neque porta vitae. Etiam arcu lacus, sollicitudin ut feugiat eu, cursus non enim. - Sed porta, massa at tincidunt faucibus, elit tortor porta eros, sit amet posuere neque dui sit amet ex. - In vel sem ac mi laoreet blandit sed eget dolor. Etiam ultricies aliquet tellus, at sollicitudin nisi iaculis et. - Sed et volutpat erat. </p> + {% print_rapport latest_rapport as rapport %} + {{ rapport }} </div> </span> -</body> \ No newline at end of file +</body> diff --git a/Projet/polls/templatetags/__init__.py b/Projet/polls/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Projet/polls/templatetags/__pycache__/__init__.cpython-35.pyc b/Projet/polls/templatetags/__pycache__/__init__.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4ae2f975e437118eb3f797733bb346dda51df62 GIT binary patch literal 164 zcmWgR<>i_frWeJ)z`*brM8Gg30|SEt0|P@b3j+f~3Ijv1CZpd<h9ZzKg7_7vpOK%N zs-IDso|vN_P?VpQT2id<oROH9lA4p5nOX#6dwRMSLFM%e@^f;E^-EH73vv=mQcDuk hi}mB<GxIV_;^XxSDsOSv<mRW8=A_zztSSaM2LL^4DxUxV literal 0 HcmV?d00001 diff --git a/Projet/polls/templatetags/__pycache__/print_rapport.cpython-35.pyc b/Projet/polls/templatetags/__pycache__/print_rapport.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8a719168c914efc9e7c67a44d6bfbddef5fbf9c3 GIT binary patch literal 2634 zcmWgR<>e|5*NY0`Wng&BfCQKs7#JKF7#NC885kH+7#LC*8FCmHav2$-7#SE-85y#e z7@8RvqL>*{nHjQJ7*d!RQkWT97#Nxv8KPJjQdk&*HCbPR%+qAN#Zi))Tac4jlA6p2 z5@BFq0GSTL&LA67nZU-^Ffe2>Fo>rxF^JbPGSo1F3={_mGBSv#u)qab8Nh-}aKQ>W zh7x9m6gH66F0ld(wM<~m>|h;*9t`0iqd34k5Q`Je;)0mO!XTc)4Hx8rv!K$fDAK&> z(rhTweCX2bDAN4s(i{xpDFSdoK{yL)Hz$g2A#`aj6lq~}X>Js05p-!D6lqbov>2Qv z4hbM$2JsXL2JsR;22gD9gTfhEKmc7p5M4kBB7lfPL~Kanw@etK6Jfgux_~IUfEYvo zi)F!@Qhuc>3=9l58HRR2i3J7uMI{O;>X{{nR~99fWaj57SSe(dq(a!GyFd!{GYsvx z6l^k#?40v+3-XII!OBun6>`)MuPiLhEJ(G{&oHv%vMEVS%1Kp7PR+?FE=Wwy%uBab zH#8`yPzMVYB&MXmg{;*Tib``*i*3~tb8^%bic2bUQf<|f@{3YZi>!+Cb23vD3=1k0 zl5!H0v#r%ZMi<#B*py`0+31&KKv<p#7Y7s_UYUG&WlCyZNh(x<eo2uXSCxWI30Pl> zT|iNON@;S5f`55lYLSACeo2a*O-YJf6*q(lQ7#Wx9-LfMnycWOSX_dv`Xws^14F4L zC`?L<!1@(j4zDar&B-q)NG&ab7*ztY?C?t6B2aeEEG|w=2e~N)<Z_UcIBoR7!DPo( z>I5<<!^qAlGbb@m0UVx4(NKWmDRB5^7~380EIYg+FEuwcucX*UKf~CLtBTpCz^;nb zM!&$0t5g?kq_JH{Vrd1)#N_<kf}F!E5fO&40HV888>+)6v$!NxAtkj~A+$KPNFlf+ zzbG@cSfM1fC^s|j@XA!EZKZi&^+t9<hgX&q<rf#ECYNNEfix=QASWX1t_S<H7;H;X zYDs=+QL#d537CtlzE~kK8RTM^m7v1cCd1gy5hAKkP?TAmTC7lzUs|M)lc-Qol%JfD zn3<QVfbO{}7Eq{^%7dM3Z0A^!TC9+wo|t=hWlm;3B!$E5@BynavI8ZhvdrSl{5+5| zQT<e0npu_zPGZ<%LjmN4vQn6Vuy75@EGYs74_deurGhdZB3!GqKt4n$&dV<?OU=na ziw<a<`9dA*oS&DLnV6Rh%YPZj5f7CDr2=?9RY*z9D@O4Y#KfvuG|s#5tP5gTX@D~+ zm|25hY9g2}5GEv7a)5FrIJ1KC4kX`}x`Ts&pnqX$r0DR<#GK4xNCB5p3Q99ssU;B4 zYl`3E%JYO3dAE2AAVo!dKB%a;#ZwF_3gUCYMZqoBqQt!P)LU$+WuOdri@zkXv?3my z$x=Zn_7+cRacWU~F(mWc;w?%oDawzBCiPp~5N=v&Nomn7VF)KNHx-c<Z}EcVQsbe< z^AzM4mlWjZrKZG}7T;paODzY}=|%aa1*x}~i%W`bv1OLT=auH%;>awC&&{t)&AY{( zSrVU=nVNTtC$l6zwE|Qcr{<O1;wUJ}&jKsu0<$2BIl*kOay~E<u0fOe7JCt-dbq`2 zk{_RvSzK_7F>@tDksJd9!>=&?jQreG{fyG|#2o#AqWrAXl45=5jKsW@)SS%B)FK$$ z)6=yGDz9IVpOaIp4{HXMB&HYZ7ZhdYmBd5s(JQC~g+7u9sJtx(HNY5{1X)BGMHz(| z`53tvxtK&5xfr1sC!32U5~P+HL>4J9FfjOOvfW}!$x6&i&o5$PU|_h#?vt5Rlvq@G zi=!wt9aR1m-Qr6uF3wEP1C_7wC5h=^ePACW5uozq7Kcr4eoARhsvW2`SIok|z#zcH G!vp{{-u2D^ literal 0 HcmV?d00001 diff --git a/Projet/polls/templatetags/print_rapport.py b/Projet/polls/templatetags/print_rapport.py new file mode 100644 index 0000000..13c7868 --- /dev/null +++ b/Projet/polls/templatetags/print_rapport.py @@ -0,0 +1,50 @@ +from django import template + +register = template.Library() + +@register.assignment_tag +def print_rapport(rapport): + to_disp = "<h1>Rapport d'itération : iteration" + rapport.nIteration + "</h1>\n " \ + "<h2>Composition de l'équipe</h2>\n" \ + "<table cellspacing='10px' cellpadding='10px;' rules='all' style='border:solid 1px black;'>\n" \ + "<tr> <th></th> <th>Itération Précédente</th> </tr>\n" + to_disp = to_disp + "<tr> <td>Product Owner </td><td>" + rapport.product_owner + "</td></tr>\n" + to_disp = to_disp + "<tr> <td>Scrum Master </td><td>" + rapport.scrum_master + "</td></tr>\n" + for i in range(5): + to_disp = to_disp + "<tr><td> Développeur</td><td>Pré-remplissage</td></tr>\n" + to_disp = to_disp + "</table>\n" + to_disp = to_disp + "<h2>Bilan de l'itération précédente</h2>\n" \ + "<h3>Évènements</h3>\n" + to_disp = to_disp + "<p>" + rapport.events + "</p>\n" + to_disp = to_disp + "<h3>Taux de complétion de l'itération</h3>\n" + to_disp = to_disp + "<p>" + rapport.taux_completion + "</p>\n" + to_disp = to_disp + "<h3>Liste des User Stories terminées</h3>\n" + to_disp = to_disp + "<p>" + rapport.user_stories + "</p>\n" + to_disp = to_disp + "<h2>Rétrospective de l'itération précédente</h2>\n" \ + "<h3>Bilans des retours et des précédentes actions</h3>\n" + to_disp = to_disp + "<p>" + rapport.retro_retours + "</p>\n" + to_disp = to_disp + "<h3>Actions prises pour la prochaine itération</h3>\n" + to_disp = to_disp + "<p>" + rapport.retro_futur + "</p>" + to_disp = to_disp + "<h3>Axes d'améliorations</h3>\n" + to_disp = to_disp + "<p>" + rapport.retro_ameliorations + "</p>\n" + to_disp = to_disp + "<h2>Prévisions de l'itération suivante</h2>\n" \ + "<h3>Évènements prévus</h3>\n" + to_disp = to_disp + "<p>" + rapport.future_events + "</p>\n" + to_disp = to_disp + "<h3>Titre des User Stories reportées</h3>\n" + to_disp = to_disp + "<p>" + rapport.postponed_us + "</p>\n" + to_disp = to_disp + "<h3>Titre des nouvelles User Stories</h3>\n" + to_disp = to_disp + "<p>" + rapport.new_us + "</p>\n" + to_disp = to_disp + "<h2>Confiance</h2>\n" \ + "<h3>Taux de confiance de l'équipe dans l'itération</h3>\n" + to_disp = to_disp + "<table cellspacing='10px' cellpadding='10px;' rules='all' style='border:solid 1px black;'>\n" \ + "<tr><th></th><th>:(</th><th>:|</th><th>:)</th><th>:D</th></tr>\n" + to_disp = to_disp + "<tr><td>" + rapport.groupe + "</td><td>" + str(rapport.it_nul) + "</td><td>" + str( + rapport.it_moyen) + "</td><td>" + str( + rapport.it_bien) + "</td><td>" + str(rapport.it_excellent) + "</td></tr>\n" + to_disp = to_disp + "</table>\n" + to_disp = to_disp + "<h3>Taux de confiance de l'équipe pour la réalisation du projet</h3>\n" + to_disp = to_disp + "<tr><td>" + rapport.groupe + "</td><td>" + str(rapport.proj_nul) + "</td><td>" + str( + rapport.proj_moyen) + "</td><td>" + str( + rapport.proj_bien) + "</td><td>" + str(rapport.proj_excellent) + "</td></tr>\n" + to_disp = to_disp + "</table>\n" + return to_disp \ No newline at end of file diff --git a/Projet/polls/views.py b/Projet/polls/views.py index 6e61e03..7c7f320 100644 --- a/Projet/polls/views.py +++ b/Projet/polls/views.py @@ -85,8 +85,35 @@ def manage_report(request): proj_bien = form.cleaned_data['proj_bien'] proj_excellent = form.cleaned_data['proj_excellent'] - #FAIRE LA TRANSFORMATION EN MARKDOWN + #SAUVEGARDER DANS LA BD + + rap = Rapport(groupe = Groupe.all()[0], + product_owner = product_owner, + scrum_master = scrum_master, + events = events, + taux_completion = taux_completion, + user_stories = user_stories, + retro_retours = retro_retours, + retro_futur = retro_futur, + retro_ameliorations = retro_ameliorations, + future_events = future_events, + postponed_us = postponed_us, + new_us = new_us, + it_nul = it_nul, + it_moyen = it_moyen, + it_bien = it_bien, + it_excellent = it_excellent, + proj_nul = proj_nul, + proj_moyen = proj_moyen, + proj_bien = proj_bien , + proj_excellent = proj_excellent , +) + rap.save() + + + #FAIRE LA TRANSFORMATION EN MARKDOWN +""" to_write = "# Rapport d\'itération : iteration 0\n\n## Composition de l\'équipe\n*Remplir ce tableau avec la composition de l\'équipe et les rôles.*\n\n| | Itération précédente |\n| ------------- |------------- |\n" to_write = to_write + "| **Product Owner** | *" + product_owner + "* |\n" to_write = to_write + "| **Scrum Master** | *" + scrum_master + "* |\n" @@ -122,6 +149,7 @@ def manage_report(request): f = open("./test.md",mode='w') f.write(to_write) f.close() +""" return HttpResponse("loll") def inscription(request): @@ -306,10 +334,10 @@ def prof(request): def eleve(request): - latest_rapport_list = Rapport.objects.order_by('url')[:5] + latest_rapport = Rapport.objects.order_by('nIteration')[0] template = loader.get_template('polls/eleve.html') context = { - 'latest_rapport_list': latest_rapport_list, + 'latest_rapport': latest_rapport, } return HttpResponse(template.render(context, request)) -- GitLab