mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-11 04:19:25 +00:00
Better integration of wiki pages on clubs
This commit is contained in:
@ -896,6 +896,13 @@ class Page(models.Model):
|
||||
if hasattr(self, 'club') and self.club.can_be_edited_by(user):
|
||||
# Override normal behavior for clubs
|
||||
return True
|
||||
if self.name == settings.SITH_CLUB_ROOT_PAGE and user.is_board_member:
|
||||
return True
|
||||
return False
|
||||
|
||||
def can_be_viewed_by(self, user):
|
||||
if self.is_club_page:
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_parent_list(self):
|
||||
@ -1005,11 +1012,15 @@ class Page(models.Model):
|
||||
except:
|
||||
return self.name
|
||||
|
||||
@property
|
||||
@cached_property
|
||||
def is_club_page(self):
|
||||
club_root_page = Page.objects.filter(name=settings.SITH_CLUB_ROOT_PAGE).first()
|
||||
return club_root_page is not None and (self == club_root_page or club_root_page in self.get_parent_list())
|
||||
|
||||
@cached_property
|
||||
def need_club_redirection(self):
|
||||
return self.is_club_page and self.name != settings.SITH_CLUB_ROOT_PAGE
|
||||
|
||||
def delete(self):
|
||||
self.unset_lock_recursive()
|
||||
self.set_lock_recursive(User.objects.get(id=0))
|
||||
@ -1059,6 +1070,9 @@ class PageRev(models.Model):
|
||||
else:
|
||||
return object.__getattribute__(self, attr)
|
||||
|
||||
def can_be_edited_by(self, user):
|
||||
return self.page.can_be_edited_by(user)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if self.revision is None:
|
||||
self.revision = self.page.revisions.all().count() + 1
|
||||
|
Reference in New Issue
Block a user