feat: Add event co-managers permissions and allow managers/admins to signup guests on skill-restricted shifts
This commit is contained in:
@@ -18,9 +18,19 @@ class Event(models.Model):
|
||||
end_date = models.DateField()
|
||||
is_active = models.BooleanField(default=True, help_text="Aktiv/Deaktiviert Status")
|
||||
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, related_name='created_events')
|
||||
co_managers = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True, related_name='managed_events', help_text="Weitere Verwalter dieser Veranstaltung")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
def is_user_manager_or_admin(self, user):
|
||||
if not user or not user.is_authenticated:
|
||||
return False
|
||||
if user.is_admin_user or user.is_staff or user.is_superuser:
|
||||
return True
|
||||
if self.created_by_id == user.id:
|
||||
return True
|
||||
return self.co_managers.filter(id=user.id).exists()
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.title} ({'Aktiv' if self.is_active else 'Deaktiviert'})"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user