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, )
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)
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)