def dispatch(self, request, *args, **kwargs): max_allowed_reports = allowed_report_builder_reports(self.request) num_builder_reports = number_of_report_builder_reports(self.domain) if num_builder_reports >= max_allowed_reports: return redirect(ReportBuilderPaywallPricing.urlname, self.domain) return super(ReportBuilderTypeSelect, self).dispatch(request, *args, **kwargs)
def form(self): max_allowed_reports = allowed_report_builder_reports(self.request) if self.request.method == 'POST': return DataSourceForm(self.domain, self.report_type, max_allowed_reports, self.request.POST) return DataSourceForm(self.domain, self.report_type, max_allowed_reports)
def _confirm_report_limit(self): """ This method is used to confirm that the user is not creating more reports than they are allowed. The user is normally turned back earlier in the process, but this check is necessary in case they navigated directly to this view either maliciously or with a bookmark perhaps. """ if (number_of_report_builder_reports(self.domain) >= allowed_report_builder_reports(self.request)): raise Http404()
def page_context(self): context = super(ReportBuilderPaywallPricing, self).page_context if has_report_builder_access(self.request): max_allowed_reports = allowed_report_builder_reports(self.request) num_builder_reports = number_of_report_builder_reports(self.domain) if num_builder_reports >= max_allowed_reports: context.update({ 'at_report_limit': True, 'max_allowed_reports': max_allowed_reports, }) return context