| Total Complexity | 4 |
| Total Lines | 41 |
| Duplicated Lines | 0 % |
| 1 | from django.db import models |
||
| 8 | class School(Group): |
||
| 9 | design = models.CharField(max_length=255) |
||
| 10 | |||
| 11 | def save(self, *args, **kwargs): |
||
| 12 | """ |
||
| 13 | Schools are special groups: some params cannot be specified by user. |
||
| 14 | """ |
||
| 15 | self.visibility = Group.VIS_PUBLIC |
||
| 16 | self.type = Group.TYPE_SCHOOL |
||
| 17 | self.default_member_rank = -1 |
||
| 18 | self.req_rank_invite = Group.ADMINISTRATOR_RANK |
||
| 19 | self.req_rank_kick = Group.ADMINISTRATOR_RANK |
||
| 20 | self.req_rank_accept_join_requests = Group.ADMINISTRATOR_RANK |
||
| 21 | self.req_rank_promote = Group.ADMINISTRATOR_RANK |
||
| 22 | self.req_rank_demote = Group.ADMINISTRATOR_RANK |
||
| 23 | self.req_rank_modify_group_infos = Group.ADMINISTRATOR_RANK |
||
| 24 | self.resp_school = None |
||
| 25 | |||
| 26 | return super(School, self).save(*args, **kwargs) |
||
| 27 | |||
| 28 | # Permissions |
||
| 29 | @staticmethod |
||
| 30 | def has_read_permission(request): |
||
| 31 | """ |
||
| 32 | Schools list is visible by everybody. |
||
| 33 | """ |
||
| 34 | return True |
||
| 35 | |||
| 36 | def has_object_read_permission(self, request): |
||
| 37 | """ |
||
| 38 | Schools are only visible by members. |
||
| 39 | """ |
||
| 40 | return request.user.is_group_member(self) |
||
| 41 | |||
| 42 | @staticmethod |
||
| 43 | @allow_staff_or_superuser |
||
| 44 | def has_create_permission(request): |
||
| 45 | """ |
||
| 46 | Schools can be created by Sigma admin only. |
||
| 47 | """ |
||
| 48 | return False |
||
| 49 |