def get_context_data(self, **kwargs):
        kwargs["referents"] = self.object.memberships.filter(
            membership_type=Membership.MEMBERSHIP_TYPE_REFERENT).order_by(
                "created")
        kwargs["managers"] = self.object.memberships.filter(
            membership_type=Membership.MEMBERSHIP_TYPE_MANAGER).order_by(
                "created")
        kwargs["members"] = self.object.memberships.all().order_by("created")
        kwargs["has_promo_code"] = self.object.tags.filter(
            label=settings.PROMO_CODE_TAG).exists()
        if kwargs["has_promo_code"]:
            kwargs["group_promo_codes"] = get_promo_codes(self.object)

        if is_promo_code_delayed():
            kwargs["promo_code_delay"] = next_promo_code_date()

        kwargs["certifiable"] = (
            self.object.type in settings.CERTIFIABLE_GROUP_TYPES
            or self.object.subtypes.filter(
                label__in=settings.CERTIFIABLE_GROUP_SUBTYPES).exists())
        kwargs["satisfy_requirements"] = len(kwargs["referents"]) > 1
        kwargs["allocation_balance"] = get_balance(self.object)
        kwargs["spending_requests"] = SpendingRequest.objects.filter(
            group=self.object).exclude(status=SpendingRequest.STATUS_PAID)
        kwargs["is_pressero_enabled"] = is_pressero_enabled()

        kwargs["active"] = self.active_panel.get(self.request.POST.get("form"))

        forms = self.get_forms()
        for form_name, form in forms.items():
            kwargs.setdefault(form_name, form)

        return super().get_context_data(**kwargs, )
Example #2
0
    def get(self, request, *args, **kwargs):
        group = self.get_object()
        person = request.user.person

        if not is_pressero_enabled():
            raise Http404("Cette page n'existe pas")

        if not group.is_certified:
            raise Http404("Cette page n'existe pas")

        try:
            return redirect_to_pressero(person)
        except Exception as e:
            logger.error("Problème rencontré avec l'API Pressero",
                         exc_info=True)

            return TemplateResponse(request, self.template_name)
Example #3
0
    def get(self, request, *args, **kwargs):
        group = self.get_object()
        person = request.user.person

        if not is_pressero_enabled():
            raise Http404("Cette page n'existe pas")

        if not group.is_certified:
            raise Http404("Cette page n'existe pas")

        if not Membership.objects.filter(
                supportgroup=group, person=person, is_manager=True).exists:
            raise PermissionDenied("Vous ne pouvez pas accéder à cette page.")

        try:
            return redirect_to_pressero(person)
        except Exception as e:
            logger.error("Problème rencontré avec l'API Pressero",
                         exc_info=True)

            return TemplateResponse(request, self.template_name)