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)
Example #3
0
}, {
    '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)
Example #4
0
        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)