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
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
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
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
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
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
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
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
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
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
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()
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()
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
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
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
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
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
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
def create(cls, org, tests, actions): return cls.objects.create(org=org, tests=json_encode(tests), actions=json_encode(actions))
def create(cls, org, tests, actions): return cls.objects.create(org=org, tests=json_encode(tests), actions=json_encode(actions))