Snippets

DOOK yod7r: Untitled snippet

Created by Michal Oleniec
class PermisionGroup(models.Model):
    department = models.ForeignKey(Department)
    level = models.ForeignKey(Level)
    restaurant = models.ForeignKey(Restaurant)

    #includes = models.ManyToManyField(User)
    excludes = models.ManyToManyField(User)
    permissions = models.ManyToManyField(AmebaPermission)

    def get_users():
        User.objects.filter(
            department = self.department  # < te atrybuty pewnie dynamicznie przez *kwargs co nie jest nullem
            level = self.level
            ...
        ).exclude(ids__in=self.excludes.values_list('id', flat=True))


class Program(models.Model):
    ...
    permission_groups = models.ManyToMany(PermisionGroup)

    def get_assigned_users():
        program_assigned_users = None
        for permission_group in self.permission_groups.filter(permissions__name='program.assigned'):
            program_assigned_users = program_assigned_users + permission_group.get_users()

        return set(program_assigned_users)

    def save():
        super().save()

        assign_perm('program.assigned', self, self.get_assigned_users())

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.