Esempio n. 1
0
    def get_context_data(self, **kwargs):
        context = super(BaseInboxView, self).get_context_data(**kwargs)
        org = self.request.org
        user = self.request.user
        partner = user.get_partner(org)

        labels = list(Label.get_all(org, user).order_by("name"))
        Label.bulk_cache_initialize(labels)

        fields = Field.get_all(org, visible=True).order_by("label")

        # angular app requires context data in JSON format
        context["context_data_json"] = json_encode({
            "user": {
                "id": user.pk,
                "partner": partner.as_json() if partner else None
            },
            "labels": [l.as_json() for l in labels],
            "fields": [f.as_json() for f in fields],
        })

        context["banner_text"] = org.get_banner_text()
        context["folder"] = self.folder.name
        context["folder_icon"] = self.folder_icon
        context["open_case_count"] = Case.get_open(org, user).count()
        context["closed_case_count"] = Case.get_closed(org, user).count()
        context["allow_case_without_message"] = getattr(
            settings, "SITE_ALLOW_CASE_WITHOUT_MESSAGE", False)
        context[
            "user_must_reply_with_faq"] = org and not user.is_anonymous and user.must_use_faq(
            )
        context["site_contact_display"] = getattr(settings,
                                                  "SITE_CONTACT_DISPLAY",
                                                  "name")
        return context
Esempio n. 2
0
        def get_context_data(self, **kwargs):
            context = super(ContactCRUDL.Read, self).get_context_data(**kwargs)

            fields = Field.get_all(self.object.org, visible=True).order_by('label')

            context['context_data_json'] = json_encode({
                'contact': self.object.as_json(full=True),
                'fields': [f.as_json() for f in fields]
            })
            context['backend_url'] = settings.SITE_EXTERNAL_CONTACT_URL % self.object.uuid
            return context
Esempio n. 3
0
        def get_context_data(self, **kwargs):
            context = super(LabelCRUDL.Read, self).get_context_data(**kwargs)

            # augment usual label JSON
            label_json = self.object.as_json()
            label_json["watching"] = self.object.is_watched_by(
                self.request.user)

            # angular app requires context data in JSON format
            context["context_data_json"] = json_encode({"label": label_json})
            return context
Esempio n. 4
0
        def get_context_data(self, **kwargs):
            context = super(FaqCRUDL.Read, self).get_context_data(**kwargs)
            edit_button_url = reverse('msgs.faq_update', args=[self.object.pk])
            context['context_data_json'] = json_encode({'faq': self.object.as_json()})
            context['edit_button_url'] = edit_button_url
            context['can_delete'] = True

            labels = []
            for label in self.object.labels.all():
                labels.append(label.name)
            context['labels'] = ', '.join(labels)
            return context
Esempio n. 5
0
        def get_context_data(self, **kwargs):
            context = super(LabelCRUDL.Read, self).get_context_data(**kwargs)

            # augment usual label JSON
            label_json = self.object.as_json()
            label_json['watching'] = self.object.is_watched_by(self.request.user)

            # angular app requires context data in JSON format
            context['context_data_json'] = json_encode({
                'label': label_json
            })
            return context
Esempio n. 6
0
        def get_context_data(self, **kwargs):
            context = super(PartnerCRUDL.Read, self).get_context_data(**kwargs)

            # angular app requires context data in JSON format
            context['context_data_json'] = json_encode({
                'partner': self.object.as_json(),
            })

            context['can_manage'] = self.request.user.can_manage(self.object)
            context['labels'] = self.object.get_labels()
            context['managers'] = self.object.get_managers()
            context['analysts'] = self.object.get_analysts()
            return context
Esempio n. 7
0
        def get_context_data(self, **kwargs):
            context = super(FaqCRUDL.Read, self).get_context_data(**kwargs)
            edit_button_url = reverse("msgs.faq_update", args=[self.object.pk])
            context["context_data_json"] = json_encode(
                {"faq": self.object.as_json()})
            context["edit_button_url"] = edit_button_url
            context["can_delete"] = True

            labels = []
            for label in self.object.labels.all():
                labels.append(label.name)
            context["labels"] = ", ".join(labels)
            return context
Esempio n. 8
0
        def get_context_data(self, **kwargs):
            context = super(ContactCRUDL.Read, self).get_context_data(**kwargs)

            fields = Field.get_all(self.object.org,
                                   visible=True).order_by("label")

            context["context_data_json"] = json_encode({
                "contact":
                self.object.as_json(full=True),
                "fields": [f.as_json() for f in fields]
            })
            context[
                "backend_url"] = settings.SITE_EXTERNAL_CONTACT_URL % self.object.uuid
            return context
Esempio n. 9
0
        def get_context_data(self, **kwargs):
            context = super(CaseCRUDL.Read, self).get_context_data(**kwargs)
            case = self.get_object()
            labels = Label.get_all(self.request.org).order_by('name')
            can_update = case.access_level(self.request.user) == AccessLevel.update

            # angular app requires context data in JSON format
            context['context_data_json'] = json_encode({
                'all_labels': [l.as_json() for l in labels]
            })

            context['max_msg_chars'] = MAX_MESSAGE_CHARS
            context['can_update'] = can_update
            context['alert'] = self.request.GET.get('alert', None)
            return context
Esempio n. 10
0
        def get_context_data(self, **kwargs):
            context = super(PartnerCRUDL.Read, self).get_context_data(**kwargs)

            # angular app requires context data in JSON format
            context['context_data_json'] = json_encode({
                'partner': self.object.as_json()
            })

            user_partner = self.request.user.get_partner(self.object.org)

            context['can_manage'] = self.request.user.can_manage(self.object)
            context['can_view_replies'] = not user_partner or user_partner == self.object
            context['labels'] = self.object.get_labels()
            context['summary'] = self.get_summary(self.object)
            return context
Esempio n. 11
0
    def update_tests(self, tests):
        from casepro.rules.models import Rule, LabelAction

        if tests:
            if self.rule:
                self.rule.tests = json_encode(tests)
                self.rule.save(update_fields=('tests', ))
            else:
                self.rule = Rule.create(self.org, tests, [LabelAction(self)])
                self.save(update_fields=('rule', ))
        else:
            if self.rule:
                rule = self.rule
                self.rule = None
                self.save(update_fields=('rule', ))

                rule.delete()
Esempio n. 12
0
    def update_tests(self, tests):
        from casepro.rules.models import Rule, LabelAction

        if tests:
            if self.rule:
                self.rule.tests = json_encode(tests)
                self.rule.save(update_fields=('tests',))
            else:
                self.rule = Rule.create(self.org, tests, [LabelAction(self)])
                self.save(update_fields=('rule',))
        else:
            if self.rule:
                rule = self.rule
                self.rule = None
                self.save(update_fields=('rule',))

                rule.delete()
Esempio n. 13
0
        def get_context_data(self, **kwargs):
            context = super(UserCRUDL.Read, self).get_context_data(**kwargs)
            org = self.request.org
            user = self.request.user

            if self.object == user:
                edit_button_url = reverse("profiles.user_self")
                can_delete = False  # can't delete yourself
            elif user.can_edit(org, self.object):
                edit_button_url = reverse("profiles.user_update", args=[self.object.pk])
                can_delete = bool(org)  # can only delete in context of an org
            else:
                edit_button_url = None
                can_delete = False

            context["context_data_json"] = json_encode({"user": self.object.as_json(full=True, org=org)})
            context["edit_button_url"] = edit_button_url
            context["can_delete"] = can_delete
            context["summary"] = self.get_summary(org, self.object) if org else {}
            return context
Esempio n. 14
0
        def get_context_data(self, **kwargs):
            context = super(PartnerCRUDL.Read, self).get_context_data(**kwargs)

            fields = Field.get_all(self.object.org,
                                   visible=True).order_by("label")

            # angular app requires context data in JSON format
            context["context_data_json"] = json_encode({
                "partner":
                self.object.as_json(),
                "fields": [f.as_json() for f in fields]
            })

            user_partner = self.request.user.get_partner(self.object.org)

            context["can_manage"] = self.request.user.can_manage(self.object)
            context[
                "can_view_replies"] = not user_partner or user_partner == self.object
            context["labels"] = self.object.get_labels()
            context["summary"] = self.get_summary(self.object)
            return context
Esempio n. 15
0
        def get_context_data(self, **kwargs):
            context = super(CaseCRUDL.Read, self).get_context_data(**kwargs)
            case = self.get_object()
            can_update = case.access_level(
                self.request.user) == AccessLevel.update

            labels = Label.get_all(self.request.org).order_by("name")
            fields = Field.get_all(self.object.org,
                                   visible=True).order_by("label")

            # angular app requires context data in JSON format
            context["context_data_json"] = json_encode({
                "all_labels": [l.as_json() for l in labels],
                "fields": [f.as_json() for f in fields]
            })

            context["can_update"] = can_update
            context["alert"] = self.request.GET.get("alert", None)
            context["case_id"] = case.id

            return context
Esempio n. 16
0
    def get_context_data(self, **kwargs):
        context = super(BaseHomeView, self).get_context_data(**kwargs)
        org = self.request.org
        user = self.request.user
        partner = user.get_partner(org)

        labels = Label.get_all(org, user).order_by('name')
        groups = Group.get_all(org, visible=True).order_by('name')

        # angular app requires context data in JSON format
        context['context_data_json'] = json_encode({
            'user': {'id': user.pk, 'partner': partner.as_json() if partner else None},
            'labels': [l.as_json() for l in labels],
            'groups': [g.as_json() for g in groups],
        })

        context['banner_text'] = org.get_banner_text()
        context['folder'] = self.folder.name
        context['folder_icon'] = self.folder_icon
        context['open_case_count'] = Case.get_open(org, user).count()
        context['closed_case_count'] = Case.get_closed(org, user).count()
        return context
Esempio n. 17
0
        def get_context_data(self, **kwargs):
            context = super(CaseCRUDL.Read, self).get_context_data(**kwargs)
            case = self.get_object()
            can_update = case.access_level(
                self.request.user) == AccessLevel.update

            labels = Label.get_all(self.request.org).order_by('name')
            fields = Field.get_all(self.object.org,
                                   visible=True).order_by('label')

            # angular app requires context data in JSON format
            context['context_data_json'] = json_encode({
                'all_labels': [l.as_json() for l in labels],
                'fields': [f.as_json() for f in fields],
            })

            context['can_update'] = can_update
            context['alert'] = self.request.GET.get('alert', None)
            context['case_id'] = case.id
            context['pods'] = pod_registry.pods
            context['pod_types'] = pod_registry.pod_types

            return context
Esempio n. 18
0
    def get_context_data(self, **kwargs):
        context = super(BaseInboxView, self).get_context_data(**kwargs)
        org = self.request.org
        user = self.request.user
        partner = user.get_partner(org)

        labels = list(Label.get_all(org, user).order_by('name'))
        Label.bulk_cache_initialize(labels)

        groups = Group.get_all(org, visible=True).order_by('name')
        fields = Field.get_all(org, visible=True).order_by('label')

        # angular app requires context data in JSON format
        context['context_data_json'] = json_encode({
            'user': {
                'id': user.pk,
                'partner': partner.as_json() if partner else None
            },
            'labels': [l.as_json() for l in labels],
            'groups': [g.as_json() for g in groups],
            'fields': [f.as_json() for f in fields],
        })

        context['banner_text'] = org.get_banner_text()
        context['folder'] = self.folder.name
        context['folder_icon'] = self.folder_icon
        context['open_case_count'] = Case.get_open(org, user).count()
        context['closed_case_count'] = Case.get_closed(org, user).count()
        context['allow_case_without_message'] = getattr(
            settings, 'SITE_ALLOW_CASE_WITHOUT_MESSAGE', False)
        context['user_must_reply_with_faq'] = org and not user.is_anonymous(
        ) and user.must_use_faq()
        context['site_contact_display'] = getattr(settings,
                                                  'SITE_CONTACT_DISPLAY',
                                                  "name")
        return context
Esempio n. 19
0
 def create(cls, org, tests, actions):
     return cls.objects.create(org=org,
                               tests=json_encode(tests),
                               actions=json_encode(actions))
Esempio n. 20
0
 def create(cls, org, tests, actions):
     return cls.objects.create(org=org, tests=json_encode(tests), actions=json_encode(actions))