.
This commit is contained in:
+12
-3
@@ -563,6 +563,15 @@ class ExamCollectionGenericBase(models.Model):
|
||||
authors = [i for i in self.author.all()]
|
||||
return authors
|
||||
|
||||
def check_user_can_edit(self, user: User):
|
||||
if user.is_superuser:
|
||||
return True
|
||||
|
||||
if user in self.get_author_objects():
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def check_logged_in_user(self, request: HttpRequest):
|
||||
"""Helper to check if the logged in user can access the exam"""
|
||||
return self.check_cid_user(request=request, user_id=request.user.id)
|
||||
@@ -905,7 +914,7 @@ class ExamBase(ExamCollectionGenericBase):
|
||||
|
||||
class ExamUserStatus(models.Model):
|
||||
datetime = models.DateTimeField(auto_now_add=True)
|
||||
cid_user = models.ForeignKey(
|
||||
cid_user: "CidUser" = models.ForeignKey(
|
||||
"CidUser", blank=True, null=True, on_delete=models.SET_NULL
|
||||
)
|
||||
user_user = models.ForeignKey(
|
||||
@@ -923,10 +932,10 @@ class ExamUserStatus(models.Model):
|
||||
if self.cid_user:
|
||||
user = self.cid_user.cid
|
||||
email = self.cid_user.email_field
|
||||
return f"{self.datetime}: {user} () - {self.status} ({self.extra})"
|
||||
return f"{self.datetime:%Y-%m-%d %H:%M:%S}: {user} ({email}) - {self.status} ({self.extra})"
|
||||
else:
|
||||
user = self.user_user.username
|
||||
return f"{self.datetime}: {user} - {self.status} ({self.extra})"
|
||||
return f"{self.datetime:%Y-%m-%d %H:%M:%S}: {user} - {self.status} ({self.extra})"
|
||||
|
||||
|
||||
class UserAnswerBase(models.Model):
|
||||
|
||||
Reference in New Issue
Block a user