Verified Commit 939146bd authored by Sli's avatar Sli
Browse files

Sync pages with club unix_name

parent fe69cbce
...@@ -105,22 +105,24 @@ class Club(models.Model): ...@@ -105,22 +105,24 @@ class Club(models.Model):
self.save() self.save()
def make_page(self): def make_page(self):
root = User.objects.filter(username="root").first()
if not self.page: if not self.page:
root = User.objects.filter(username="root").first()
club_root = Page.objects.filter(name=settings.SITH_CLUB_ROOT_PAGE).first() club_root = Page.objects.filter(name=settings.SITH_CLUB_ROOT_PAGE).first()
if root and club_root: if root and club_root:
public = Group.objects.filter(id=settings.SITH_GROUP_PUBLIC_ID).first() public = Group.objects.filter(id=settings.SITH_GROUP_PUBLIC_ID).first()
office = Group.objects.filter(name=self.unix_name + settings.SITH_BOARD_SUFFIX).first()
p = Page(name=self.unix_name) p = Page(name=self.unix_name)
p.parent = club_root p.parent = club_root
p.set_lock(root) p.set_lock(root)
if public: if public:
p.view_groups.add(public) p.view_groups.add(public)
if office:
p.edit_groups.add(office)
p.save() p.save()
self.page = p self.page = p
self.save() self.save()
elif self.page and self.page.name != self.unix_name:
self.page.unset_lock()
self.page.set_lock(root)
self.page.name = self.unix_name
self.page.save()
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
with transaction.atomic(): with transaction.atomic():
...@@ -142,7 +144,7 @@ class Club(models.Model): ...@@ -142,7 +144,7 @@ class Club(models.Model):
self.home.edit_groups = [board] self.home.edit_groups = [board]
self.home.view_groups = [member, subscribers] self.home.view_groups = [member, subscribers]
self.home.save() self.home.save()
self.make_page() self.make_page()
def __str__(self): def __str__(self):
return self.name return self.name
......
...@@ -85,6 +85,12 @@ class Command(BaseCommand): ...@@ -85,6 +85,12 @@ class Command(BaseCommand):
profiles_root.save() profiles_root.save()
home_root = SithFile(parent=None, name="users", is_folder=True, owner=root) home_root = SithFile(parent=None, name="users", is_folder=True, owner=root)
home_root.save() home_root.save()
# Page needed for club creation
p = Page(name=settings.SITH_CLUB_ROOT_PAGE)
p.set_lock(root)
p.save()
club_root = SithFile(parent=None, name="clubs", is_folder=True, owner=root) club_root = SithFile(parent=None, name="clubs", is_folder=True, owner=root)
club_root.save() club_root.save()
SithFile(parent=None, name="SAS", is_folder=True, owner=root).save() SithFile(parent=None, name="SAS", is_folder=True, owner=root).save()
...@@ -147,10 +153,6 @@ Welcome to the wiki page! ...@@ -147,10 +153,6 @@ Welcome to the wiki page!
p.set_lock(root) p.set_lock(root)
PageRev(page=p, title="Laverie", author=root, content="Fonctionnement de la laverie").save() PageRev(page=p, title="Laverie", author=root, content="Fonctionnement de la laverie").save()
p = Page(name=settings.SITH_CLUB_ROOT_PAGE)
p.set_lock(root)
p.save()
# Here we add a lot of test datas, that are not necessary for the Sith, but that provide a basic development environment # Here we add a lot of test datas, that are not necessary for the Sith, but that provide a basic development environment
if not options['prod']: if not options['prod']:
# Adding user Skia # Adding user Skia
......
...@@ -892,6 +892,12 @@ class Page(models.Model): ...@@ -892,6 +892,12 @@ class Page(models.Model):
code='loop', code='loop',
) )
def can_be_edited_by(self, user):
if self.is_club_page and self.club.can_be_edited_by(user):
# Override normal behavior for clubs
return True
return False
def get_parent_list(self): def get_parent_list(self):
l = [] l = []
p = self.parent p = self.parent
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment