def enterprise_settings(request, domain): account = get_account_or_404(request, domain) if request.method == 'POST': form = EnterpriseSettingsForm(request.POST, domain=domain, account=account) else: form = EnterpriseSettingsForm(domain=domain, account=account) context = { 'account': account, 'accounts_email': settings.ACCOUNTS_EMAIL, 'domain': domain, 'restrict_signup': request.POST.get('restrict_signup', account.restrict_signup), 'current_page': { 'title': _('Enterprise Settings'), 'page_name': _('Enterprise Settings'), }, 'settings_form': form, } return render(request, "enterprise/enterprise_settings.html", context)
def enterprise_dashboard(request, domain): account = get_account_or_404(request, domain) if not has_privilege(request, privileges.PROJECT_ACCESS): return HttpResponseRedirect( reverse(EnterpriseBillingStatementsView.urlname, args=(domain, ))) context = { 'account': account, 'domain': domain, 'reports': [ EnterpriseReport.create(slug, account.id, request.couch_user) for slug in ( EnterpriseReport.DOMAINS, EnterpriseReport.WEB_USERS, EnterpriseReport.MOBILE_USERS, EnterpriseReport.FORM_SUBMISSIONS, ) ], 'current_page': { 'page_name': _('Enterprise Dashboard'), 'title': _('Enterprise Dashboard'), } } return render(request, "enterprise/enterprise_dashboard.html", context)
def invoices(self): account = self.account or get_account_or_404(self.request, self.request.domain) invoices = CustomerInvoice.objects.filter(account=account) if not self.show_hidden: invoices = invoices.filter(is_hidden=False) if self.show_unpaid: invoices = invoices.filter(date_paid__exact=None) return invoices.order_by('-date_start', '-date_end')
def total_balance(self): """ Returns the total balance of unpaid, unhidden invoices. Doesn't take into account the view settings on the page. """ account = self.account or get_account_or_404(self.request, self.request.domain) invoices = (CustomerInvoice.objects.filter(account=account).filter( date_paid__exact=None).filter(is_hidden=False)) return invoices.aggregate( total_balance=Sum('balance')).get('total_balance') or 0.00
def edit_enterprise_settings(request, domain): account = get_account_or_404(request, domain) form = EnterpriseSettingsForm(request.POST, domain=domain, account=account) if form.is_valid(): form.save(account) messages.success(request, "Account successfully updated.") else: return enterprise_settings(request, domain) return HttpResponseRedirect(reverse('enterprise_settings', args=[domain]))
def enterprise_dashboard_email(request, domain, slug): account = get_account_or_404(request, domain) report = EnterpriseReport.create(slug, account.id, request.couch_user) email_enterprise_report.delay(domain, slug, request.couch_user) message = _( "Generating {title} report, will email to {email} when complete." ).format(**{ 'title': report.title, 'email': request.couch_user.username, }) return JsonResponse({'message': message})
def edit_enterprise_settings(request, domain): account = get_account_or_404(request, domain) export_settings = get_default_export_settings_if_available(domain) form = EnterpriseSettingsForm(request.POST, username=request.user.username, domain=domain, account=account, export_settings=export_settings) if form.is_valid(): form.save(account) messages.success(request, "Account successfully updated.") else: return enterprise_settings(request, domain) return HttpResponseRedirect(reverse('enterprise_settings', args=[domain]))
def enterprise_dashboard_download(request, domain, slug, export_hash): account = get_account_or_404(request, domain) report = EnterpriseReport.create(slug, account.id, request.couch_user) redis = get_redis_client() content = redis.get(export_hash) if content: file = ContentFile(content) response = HttpResponse(file, Format.FORMAT_DICT[Format.UNZIPPED_CSV]) response['Content-Length'] = file.size response['Content-Disposition'] = 'attachment; filename="{}"'.format( report.filename) return response return HttpResponseNotFound( _("That report was not found. Please remember that " "download links expire after 24 hours."))
def enterprise_dashboard_total(request, domain, slug): account = get_account_or_404(request, domain) report = EnterpriseReport.create(slug, account.id, request.couch_user) return JsonResponse({'total': report.total})