Exemplo n.º 1
0
    def get_context_data(self, **kwargs):
        if "rsvp" not in kwargs:
            try:
                kwargs["rsvp"] = RSVP.objects.get(
                    event=self.event, person=self.request.user.person)
            except RSVP.DoesNotExist:
                pass

        if "is_authorized" not in kwargs:
            kwargs["is_authorized"] = (
                self.event.subscription_form is None
                or self.event.subscription_form.is_authorized(
                    self.request.user.person))

        kwargs = {
            "hide_feedback_button":
            True,
            "person_form_instance":
            self.event.subscription_form,
            "event":
            self.event,
            "submission_data":
            default_person_form_display.get_formatted_submission(
                kwargs["rsvp"].form_submission)
            if "rsvp" in kwargs and kwargs["rsvp"].form_submission else None,
            "submission":
            kwargs["rsvp"].form_submission
            if "rsvp" in kwargs and kwargs["rsvp"].form_submission else None,
            "guests_submission_data": [(
                guest.get_status_display(),
                default_person_form_display.get_formatted_submission(
                    guest.submission) if guest.submission else [],
            ) for guest in kwargs["rsvp"].identified_guests.select_related(
                "submission")] if "rsvp" in kwargs else None,
            **kwargs,
        }

        # we add a form when user is allowed AND either not subscribed, or allowed to add guests
        will_add_form = self.can_post_form() and ("rsvp" not in kwargs
                                                  or self.event.allow_guests)

        if "form" not in kwargs and will_add_form:
            kwargs["form"] = self.get_form()

        return super().get_context_data(**kwargs)
Exemplo n.º 2
0
 def get_context_data(self, **kwargs):
     kwargs.update({
         "event":
         self.event,
         "submission":
         self.submission,
         "price":
         self.event.get_price(self.submission and self.submission.data) /
         100,
         "submission_data":
         default_person_form_display.get_formatted_submission(
             self.submission) if self.submission else None,
     })
     return super().get_context_data(**kwargs)
Exemplo n.º 3
0
def description_from_submission(s):
    fieldsets = default_person_form_display.get_formatted_submission(s)

    sections = "\n\n".join([
        "{title}\n{sep}\n\n{champs}".format(
            title=fs["title"],
            sep="-" * len(fs["title"]),
            champs="\n".join(
                "{label}: {value}".format(label=f["label"], value=f["value"])
                for f in fs["data"]),
        ) for fs in fieldsets
    ])

    return DESCRIPTION_TEMPLATE.format(data=sections)
Exemplo n.º 4
0
 def test_get_formatted_submission(self):
     self.assertEqual(
         # disregard first three default fields
         default_person_form_display.get_formatted_submission(
             self.submission1, include_admin_fields=False),
         [
             {
                 "title":
                 "Détails",
                 "data": [
                     {
                         "label": "Mon label",
                         "value": "saisie 1"
                     },
                     {
                         "label": "Prout",
                         "value": "saisie 2"
                     },
                     {
                         "label": Person._meta.get_field(
                             "contact_phone").verbose_name,
                         "value": "+33612345678",
                     },
                     {
                         "label": "SUPER PRENOM",
                         "value": "Truc"
                     },
                     {
                         "label": "Choix",
                         "value": "La réponse B"
                     },
                 ],
             },
             {
                 "title": "Champs inconnus",
                 "data": [{
                     "label": "disappearing-field",
                     "value": "TUC"
                 }],
             },
         ],
     )
    def test_display_single_formatting(self):
        formatted_submission = default_person_form_display.get_formatted_submission(
            self.submission)

        self.assertEqual(
            formatted_submission,
            [
                {
                    "title":
                    "Une partie",
                    "data": [
                        {
                            "label": "Prénom",
                            "value": "Arthur"
                        },
                        {
                            "label": "Date",
                            "value": "2 mai 2050 00:00"
                        },
                        {
                            "label": "Tel.",
                            "value": "+33 6 12 34 56 78"
                        },
                        {
                            "label":
                            "Fichier",
                            "value":
                            f'<a href="test/truc.pdf">Accéder au fichier</a>',
                        },
                    ],
                },
                {
                    "title": "Champs inconnus",
                    "data": [{
                        "label": "missing_field",
                        "value": "Unknown value"
                    }],
                },
            ],
        )
Exemplo n.º 6
0
 def detail_view(self, request, object_id):
     self.object = self.get_object(request, unquote(object_id))
     if self.object is None:
         raise Http404()
     if not self.has_view_permission(request, self.object):
         raise PermissionDenied
     return TemplateResponse(
         request=request,
         template="admin/personforms/detail.html",
         context={
             "submission_data":
             default_person_form_display.get_formatted_submission(
                 self.object),
             "submission":
             self.object,
             "title":
             "Détails",
             "opts":
             PersonForm._meta,
             "add":
             False,
             "change":
             False,
             "is_popup":
             False,
             "save_as":
             False,
             "has_change_permission":
             True,
             "has_view_permission":
             True,
             "has_delete_permission":
             False,
             "show_close":
             False,
         },
     )