Better integration of wiki pages on clubs

This commit is contained in:
2017-10-01 20:52:29 +02:00
parent 2c1cf2d7af
commit baa7be69e4
13 changed files with 203 additions and 52 deletions

View File

@ -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