feat: Add event co-managers permissions and allow managers/admins to signup guests on skill-restricted shifts

This commit is contained in:
Richard
2026-07-31 11:06:47 +02:00
parent 821e14fcab
commit e2b311b634
23 changed files with 589 additions and 485 deletions
+10
View File
@@ -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'})"