Example #1
0
class ProcessLogoFileUploadView(ProcessImageFileUploadView):
    name = "hqmedia_uploader_logo"

    @method_decorator(requires_privilege_raise404(privileges.COMMCARE_LOGO_UPLOADER))
    def post(self, request, *args, **kwargs):
        return super(ProcessLogoFileUploadView, self).post(request, *args, **kwargs)

    @property
    def form_path(self):
        return ("jr://file/commcare/logo/data/%s%s"
                % (self.filename, self.file_ext))

    def validate_file(self, replace_diff_ext=True):
        return super(ProcessLogoFileUploadView, self).validate_file(replace_diff_ext)

    @property
    def filename(self):
        return self.kwargs.get('logo_name')

    def process_upload(self):
        if self.app.logo_refs is None:
            self.app.logo_refs = {}
        ref = super(
            ProcessLogoFileUploadView, self
        ).process_upload()
        self.app.logo_refs[self.filename] = ref['ref']
        self.app.save()
        return ref
Example #2
0
def locations_access_required(view_fn):
    """
    Decorator controlling domain-level access to locations.
    """
    return login_and_domain_required(
        requires_privilege_raise404(privileges.LOCATIONS)(view_fn)
    )
Example #3
0
def locations_access_required(view_fn):
    """
    Decorator controlling domain-level access to locations.
    """
    return login_and_domain_required(
        requires_privilege_raise404(privileges.LOCATIONS)(view_fn)
    )
Example #4
0
class AccountingSingleOptionResponseView(View, AsyncHandlerMixin):
    urlname = 'accounting_subscriber_response'
    http_method_names = ['post']
    async_handlers = [
        SubscriberFilterAsyncHandler,
        SubscriptionFilterAsyncHandler,
        AccountFilterAsyncHandler,
        DomainFilterAsyncHandler,
        BillingContactInfoAsyncHandler,
        SoftwarePlanAsyncHandler,
        InvoiceNumberAsyncHandler,
        CustomerInvoiceNumberAsyncHandler,
        InvoiceBalanceAsyncHandler,
    ]

    @method_decorator(require_superuser)
    @method_decorator(requires_privilege_raise404(privileges.ACCOUNTING_ADMIN))
    def dispatch(self, request, *args, **kwargs):
        return super(AccountingSingleOptionResponseView,
                     self).dispatch(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        if self.async_response:
            return self.async_response
        return HttpResponseBadRequest("Please check your query.")
Example #5
0
class AccountingAdminInterfaceDispatcher(ReportDispatcher):
    prefix = 'accounting_admin_interface'
    map_name = "ACCOUNTING_ADMIN_INTERFACES"

    @method_decorator(requires_privilege_raise404(privileges.ACCOUNTING_ADMIN))
    def dispatch(self, request, *args, **kwargs):
        return super(AccountingAdminInterfaceDispatcher,
                     self).dispatch(request, *args, **kwargs)
Example #6
0
class ReportBuilderView(TemplateView):
    @cls_to_view_login_and_domain
    @method_decorator(toggles.REPORT_BUILDER.required_decorator())
    @method_decorator(requires_privilege_raise404(privileges.REPORT_BUILDER))
    def dispatch(self, request, domain, **kwargs):
        self.domain = domain
        return super(ReportBuilderView, self).dispatch(request, domain,
                                                       **kwargs)
Example #7
0
class AccountingSectionView(BaseSectionPageView):
    section_name = 'Accounting'

    @property
    def section_url(self):
        return reverse('accounting_default')

    @method_decorator(requires_privilege_raise404(privileges.ACCOUNTING_ADMIN))
    def dispatch(self, request, *args, **kwargs):
        return super(AccountingSectionView,
                     self).dispatch(request, *args, **kwargs)
Example #8
0
class RemoveLogoView(BaseMultimediaView):
    name = "hqmedia_remove_logo"

    @property
    def logo_slug(self):
        if self.request.method == 'POST':
            return self.request.POST.get('logo_slug')
        return None

    @method_decorator(requires_privilege_raise404(privileges.COMMCARE_LOGO_UPLOADER))
    def post(self, *args, **kwargs):
        if self.logo_slug in self.app.logo_refs:
            del self.app.logo_refs[self.logo_slug]
            self.app.save()
        return HttpResponse()