Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
 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')
Esempio n. 4
0
 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
Esempio n. 5
0
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]))
Esempio n. 6
0
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})
Esempio n. 7
0
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]))
Esempio n. 8
0
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."))
Esempio n. 9
0
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})