From 5dc5dae2103d80a964936614133cadd02bbe436a Mon Sep 17 00:00:00 2001 From: Arthur Gerbaud Date: Sun, 14 Aug 2016 12:50:49 +0200 Subject: [PATCH] fix WebsiteAjaxTemplateMixin, added ajax 'sujets:update' form --- maraudes/models.py | 24 ++++-- .../templates/compte_rendu/menu_creation.html | 2 +- maraudes/templates/maraudes/index.html | 10 +++ .../templates/maraudes/lieu_create_inner.html | 12 +-- .../maraudes/menu_administration.html | 5 +- suivi/templates/suivi/details.html | 2 +- .../templates/suivi/menu_administration.html | 5 +- sujets/models.py | 1 + sujets/templates/sujets/sujet_details.html | 53 +++++++++++- .../templates/sujets/sujet_details_inner.html | 18 ----- sujets/templates/sujets/sujet_liste.html | 58 +++++++++---- sujets/templates/sujets/sujet_update.html | 7 +- .../templates/sujets/sujet_update_inner.html | 81 ++++++------------- sujets/views.py | 10 ++- website/mixins.py | 4 +- 15 files changed, 176 insertions(+), 116 deletions(-) diff --git a/maraudes/models.py b/maraudes/models.py index 48a3866..f23fe7f 100644 --- a/maraudes/models.py +++ b/maraudes/models.py @@ -33,6 +33,8 @@ class Lieu(models.Model): + + class Maraude(models.Model): """ Modèle pour une maraude - date : jour de la maraude @@ -197,12 +199,7 @@ class Rencontre(models.Model): return [o.sujet for o in self.observations.all()] - -class Planning(models.Model): - """ Plannification des maraudes. Chaque instance représente un jour de la - semaine et un horaire par défaut. - """ - WEEKDAYS = [ +WEEKDAYS = [ (0, "Lundi"), (1, "Mardi"), (2, "Mercredi"), @@ -211,6 +208,21 @@ class Planning(models.Model): (5, "Samedi"), ] +class FoyerAccueil(Lieu): + """ Foyer d'hébergement partenaire """ + + organisme = models.ForeignKey("utilisateurs.Organisme", models.CASCADE) + jour_de_passage = models.IntegerField( + choices=WEEKDAYS, + ) + + + +class Planning(models.Model): + """ Plannification des maraudes. Chaque instance représente un jour de la + semaine et un horaire par défaut. + """ + week_day = models.IntegerField( choices=WEEKDAYS, ) diff --git a/maraudes/templates/compte_rendu/menu_creation.html b/maraudes/templates/compte_rendu/menu_creation.html index 865e742..ce431f5 100644 --- a/maraudes/templates/compte_rendu/menu_creation.html +++ b/maraudes/templates/compte_rendu/menu_creation.html @@ -33,7 +33,7 @@ } }); }); - } + }; /* TODO: Use formAjaxSubmit above, but reload page on form success */ $('#new-sujet').click(function() { $('#form-modal-body').load('{% url "sujets:create" %}?next={% url "maraudes:create" pk=maraude.id %}', function () { diff --git a/maraudes/templates/maraudes/index.html b/maraudes/templates/maraudes/index.html index 1823199..5d22385 100644 --- a/maraudes/templates/maraudes/index.html +++ b/maraudes/templates/maraudes/index.html @@ -13,3 +13,13 @@ +{% if user.is_superuser %} +
+
+
Compte-rendus en retard
+ + +
Lister les comptes-rendu passés qui ne sont pas finalisés
+
+
+{% endif %} diff --git a/maraudes/templates/maraudes/lieu_create_inner.html b/maraudes/templates/maraudes/lieu_create_inner.html index c7fec3d..bd75054 100644 --- a/maraudes/templates/maraudes/lieu_create_inner.html +++ b/maraudes/templates/maraudes/lieu_create_inner.html @@ -1,8 +1,8 @@ {% load bootstrap3 %} -
-
{% csrf_token %} - {% bootstrap_form form %} - {% bootstrap_button "Ajouter un lieu" button_type="submit" button_class="btn btn-primary" icon="plus" %} - +{% csrf_token %} + {% bootstrap_form form layout="horizontal"%} +
+ {% bootstrap_button "Ajouter un lieu" button_type="submit" button_class="btn btn-primary" icon="plus" %} +
+
-
diff --git a/maraudes/templates/maraudes/menu_administration.html b/maraudes/templates/maraudes/menu_administration.html index d5cc249..64ab879 100644 --- a/maraudes/templates/maraudes/menu_administration.html +++ b/maraudes/templates/maraudes/menu_administration.html @@ -1,8 +1,7 @@ -{% load bootstrap3 %} -{% if user.is_superuser %} +{% if user.is_superuser %}{% load bootstrap3 %} + Mes accompagnements + Hébérgé en urgence + Sans logement + + - - - - - - {% for sujet in object_list %} - - - - - {% endfor %} -
NomVu le
{{sujet}}ToDo
diff --git a/sujets/templates/sujets/sujet_update.html b/sujets/templates/sujets/sujet_update.html index f6f589e..e5276d3 100644 --- a/sujets/templates/sujets/sujet_update.html +++ b/sujets/templates/sujets/sujet_update.html @@ -1,2 +1,7 @@ -{% include 'sujets/sujet_update_inner.html' %} +
+
+

Données

+ {% include 'sujets/sujet_update_inner.html' %} +
+
diff --git a/sujets/templates/sujets/sujet_update_inner.html b/sujets/templates/sujets/sujet_update_inner.html index 353d09b..8a21725 100644 --- a/sujets/templates/sujets/sujet_update_inner.html +++ b/sujets/templates/sujets/sujet_update_inner.html @@ -1,60 +1,27 @@ {% load bootstrap3 %} -
{% csrf_token %} -
-
-
-
- {% bootstrap_field form.nom layout="inline" %} - {% bootstrap_field form.surnom layout="inline" %} - {% bootstrap_field form.prenom layout="inline" %} -

- {% bootstrap_field form.genre layout="inline" %} - {% bootstrap_field form.age layout="inline" %} -
-
-
-
-
- {% bootstrap_field form.premiere_rencontre %} -
-
-
-
-
-
-
Situation sociale
-
-
- {% bootstrap_field form.habitation layout="horizontal" label_class="col-md-6" field_class="col-md-6" %} - {% bootstrap_field form.connu_siao layout="horizontal" label_class="col-md-6" field_class="col-md-6" %} - {% bootstrap_field form.ressources layout="horizontal" label_class="col-md-6" field_class="col-md-6" %} - -
-
-
-
-
-
-
Problématiques
-
-
- {% bootstrap_field form.prob_addiction layout="horizontal" label_class="col-md-4" field_class="col-md-6" %} - {% bootstrap_field form.prob_psychiatrie layout="horizontal" label_class="col-md-4" field_class="col-md-6" %} - {% bootstrap_field form.prob_administratif layout="horizontal" label_class="col-md-4" field_class="col-md-6" %} - {% bootstrap_field form.prob_somatique layout="horizontal" label_class="col-md-4" field_class="col-md-6" %} -
-
-
-
-
-
-
Parcours de vie
-
- {% bootstrap_field form.parcours_de_vie %} - {% bootstrap_field form.lien_familial %} -
-
-
-
+{% csrf_token %} +
{% bootstrap_field form.premiere_rencontre %}
+ + + + + + + + + + + + + + + + + + + +
État-civil
Nom{% bootstrap_field form.nom layout="inline" %}Prénom{% bootstrap_field form.prenom layout="inline" %}{% bootstrap_field form.surnom layout="inline" %}
Sexe{% bootstrap_field form.genre layout="inline" %}Âge{% bootstrap_field form.age layout="inline" %}
Problématiques
Psychiatrique{% bootstrap_field form.prob_psychiatrie layout="inline" %}Addiction{% bootstrap_field form.prob_addiction layout="inline" %}
Administratif{% bootstrap_field form.prob_administratif layout="inline" %}Somatique{% bootstrap_field form.prob_somatique layout="inline" %}
Habitation
Type{% bootstrap_field form.habitation layout="inline" %}Connu du SIAO{% bootstrap_field form.connu_siao layout="inline" %}
Ressources
{% bootstrap_field form.ressources layout="inline" %}
Parcours de vie
{% bootstrap_field form.parcours_de_vie layout="inline" %}Lien familial{% bootstrap_field form.lien_familial layout="inline" %}
+
diff --git a/sujets/views.py b/sujets/views.py index 3d39ff1..26af8cd 100644 --- a/sujets/views.py +++ b/sujets/views.py @@ -48,7 +48,9 @@ class SujetUpdateView(generic.edit.UpdateView): header = "{{sujet}}" header_small = "mise à jour" - + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + print('SujetUpdateView init:', self.__class__.__bases__) class SujetCreateForm(ModelForm): class Meta: @@ -56,7 +58,7 @@ class SujetCreateForm(ModelForm): fields = ['nom', 'surnom', 'prenom', 'genre', 'premiere_rencontre'] -@website.webpage(ajax=True, permissions=['sujets.add_sujet'], app_name="suivi") +@webpage class SujetCreateView(generic.edit.CreateView): template_name = "sujets/sujet_create.html" form_class = SujetCreateForm @@ -65,6 +67,10 @@ class SujetCreateView(generic.edit.CreateView): title = "Nouveau sujet" header = "Nouveau sujet" + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.permissions += ['sujets.add_sujet'] + def post(self, request, *args, **kwargs): if 'next' in self.request.POST: self.success_url = self.request.POST["next"] diff --git a/website/mixins.py b/website/mixins.py index d20d5b6..993418c 100644 --- a/website/mixins.py +++ b/website/mixins.py @@ -140,13 +140,15 @@ class WebsiteAjaxTemplateMixin(WebsiteTemplateMixin): def dispatch(self, request, *args, **kwargs): if not hasattr(self, 'content_template') or not self.content_template: self.content_template = self.get_content_template() + if not hasattr(self, 'ajax_template'): + self.ajax_template = '%s_inner.html' % self.content_template.split(".")[0] if request.is_ajax(): self.is_ajax = True return super().dispatch(request, *args, **kwargs) def get_template_names(self): if self.is_ajax: - return [self.content_template] + return [self.ajax_template] return super().get_template_names() class WebsiteProtectedMixin(WebsiteTemplateMixin, PermissionRequiredMixin):