handler = models.ForeignKey(EmailHandler, related_name='email_message_templates') def parse_message(self, msg): d = {} for msgattr in ['subject', 'body']: parser = template_parser.TemplatedStringParser( template=getattr(self, msgattr)) parser.string_to_parse = getattr(msg, msgattr) d[msgattr] = parser.get_parsed_values() return d build_defaults({ 'model': DefaultEmailMessageTemplate, 'unique': 'name', 'defaults': email_template_defaults.defaults }) def get_messages(handler_id=None, msg_type='unread', **kwargs): q = EmailHandler.objects.all() if type(handler_id) in [list, tuple, set]: q = q.filter(id__in=handler_id) elif handler_id is not None: q = q.filter(id__exact=handler_id) d = {} kwargs.setdefault('mark_as_read', True) for h in q: d[h.id] = [] conf = h.incoming_mail_configuration
class EmailMessageTemplate(EmailMessageTemplateBase): name = models.CharField(max_length=100, help_text="Template name (not used as part of the generated message)") handler = models.ForeignKey(EmailHandler, related_name="email_message_templates") def parse_message(self, msg): d = {} for msgattr in ["subject", "body"]: parser = template_parser.TemplatedStringParser(template=getattr(self, msgattr)) parser.string_to_parse = getattr(msg, msgattr) d[msgattr] = parser.get_parsed_values() return d build_defaults({"model": DefaultEmailMessageTemplate, "unique": "name", "defaults": email_template_defaults.defaults}) def get_messages(handler_id=None, msg_type="unread", **kwargs): q = EmailHandler.objects.all() if type(handler_id) in [list, tuple, set]: q = q.filter(id__in=handler_id) elif handler_id is not None: q = q.filter(id__exact=handler_id) d = {} kwargs.setdefault("mark_as_read", True) for h in q: d[h.id] = [] conf = h.incoming_mail_configuration if conf.protocol == "gmail": bkwargs = dict(username=conf.login.username, password=conf.login.password, inbox_timezone=h.timezone_name)
}, { 'name': 'status_change', 'description': 'Can Change Ticket Status', 'inherited': ['write'] }, { 'name': 'all', 'description': 'All Permissions (SuperUser)', 'inherited': ['read', 'write', 'modify', 'take', 'assign', 'status_change'] }) build_defaults({ 'model': TrackerPermissionItem, 'unique': 'name', 'defaults': tracker_item_defaults }) class TrackerGlobalPermission(models.Model): permission_item = models.ForeignKey(TrackerPermissionItem, related_name='global_permissions') users = models.ManyToManyField(StaffUser, null=True, blank=True) groups = models.ManyToManyField(StaffGroup, null=True, blank=True) def get_inherited(self): q = self.permission_item.get_inherited() l = q.values('id') ids = set([d['id'] for d in l]) ids.add(self.id)
return self.name tracker_item_defaults = ({'name':'read', 'description':'Can Read Posts'}, {'name':'write', 'description':'Can Reply', 'inherited':['read']}, {'name':'modify', 'description':'Can Modify Posts', 'inherited':['write']}, {'name':'take', 'description':'Can Take Ticket as Assignment', 'inherited':['write']}, {'name':'assign', 'description':'Can Assign Tickets to Staff', 'inherited':['take']}, {'name':'status_change', 'description':'Can Change Ticket Status', 'inherited':['write']}, {'name':'all', 'description':'All Permissions (SuperUser)', 'inherited':['read', 'write', 'modify', 'take', 'assign', 'status_change']}) build_defaults({'model':TrackerPermissionItem, 'unique':'name', 'defaults':tracker_item_defaults}) class TrackerGlobalPermission(models.Model): permission_item = models.ForeignKey(TrackerPermissionItem, related_name='global_permissions') users = models.ManyToManyField(StaffUser, null=True, blank=True) groups = models.ManyToManyField(StaffGroup, null=True, blank=True) def get_inherited(self): q = self.permission_item.get_inherited() l = q.values('id') ids = set([d['id'] for d in l]) ids.add(self.id) return TrackerGlobalPermission.objects.filter(id__in=ids) def __unicode__(self): return unicode(self.permission)