Skip to content

Commit

Permalink
Merge pull request #1013 from CodingPirates/980-bugmedlemmer-af-sek-k…
Browse files Browse the repository at this point in the history
…an-ikke-se-data-ud-over-egen-afdeling

[#980] Medlemmer af SEK kan nu se alle afdelinger, foreninger + div objekter
  • Loading branch information
lakridserne authored Apr 7, 2024
2 parents c09ec7c + 4461284 commit c3e50af
Show file tree
Hide file tree
Showing 9 changed files with 66 additions and 13 deletions.
4 changes: 3 additions & 1 deletion members/admin/activity_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,9 @@ def activity_membership_union_link(self, obj):
# Only view activities on own department
def get_queryset(self, request):
qs = super(ActivityAdmin, self).get_queryset(request)
if request.user.is_superuser:
if request.user.is_superuser or request.user.has_perm(
"members.view_all_departments"
):
return qs
departments = Department.objects.filter(adminuserinformation__user=request.user)
return qs.filter(department__in=departments)
Expand Down
4 changes: 3 additions & 1 deletion members/admin/activityinvite_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,9 @@ class Meta:
# Only show invitation to own activities
def get_queryset(self, request):
qs = super(ActivityInviteAdmin, self).get_queryset(request)
if request.user.is_superuser:
if request.user.is_superuser or request.user.has_perm(
"members.view_all_departments"
):
return qs
return qs.filter(activity__department__adminuserinformation__user=request.user)

Expand Down
4 changes: 3 additions & 1 deletion members/admin/activityparticipant_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,9 @@ def person_zipcode(self, item):
# Only show participants to own departments
def get_queryset(self, request):
qs = super(ActivityParticipantAdmin, self).get_queryset(request)
if request.user.is_superuser:
if request.user.is_superuser or request.user.has_perm(
"members.view_all_departments"
):
return qs
return qs.filter(activity__department__adminuserinformation__user=request.user)

Expand Down
4 changes: 3 additions & 1 deletion members/admin/department_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ def formfield_for_manytomany(self, db_field, request, **kwargs):

def get_queryset(self, request):
qs = super(DepartmentAdmin, self).get_queryset(request)
if request.user.is_superuser:
if request.user.is_superuser or request.user.has_perm(
"members.view_all_departments"
):
return qs
return qs.filter(adminuserinformation__user=request.user)

Expand Down
4 changes: 3 additions & 1 deletion members/admin/union_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ def formfield_for_manytomany(self, db_field, request, **kwargs):

def get_queryset(self, request):
qs = super(UnionAdmin, self).get_queryset(request)
if request.user.is_superuser:
if request.user.is_superuser or request.user.has_perm(
"members.view_all_unions"
):
return qs
return qs.filter(adminuserinformation__user=request.user)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Generated by Django 4.2 on 2024-03-29 09:52

from django.db import migrations


class Migration(migrations.Migration):
dependencies = [
("members", "0045_activityinvite_extra_email_info_and_more"),
]

operations = [
migrations.AlterModelOptions(
name="department",
options={
"ordering": ["address__zipcode"],
"permissions": (("view_all_departments", "Can view all Afdelinger"),),
"verbose_name": "Afdeling",
"verbose_name_plural": "Afdelinger",
},
),
migrations.AlterModelOptions(
name="union",
options={
"ordering": ["name"],
"permissions": (("view_all_unions", "Can view all Foreninger"),),
"verbose_name": "Forening",
"verbose_name_plural": "Foreninger",
},
),
]
27 changes: 19 additions & 8 deletions members/models/address.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,25 @@ def get_by_dawa_id(dawa_id):
def get_user_addresses(user):
if user.is_superuser:
return Address.objects.all()
department_address_id = [
department.address.id
for department in Department.objects.filter(adminuserinformation__user=user)
]
union_address_id = [
union.address.id
for union in Union.objects.filter(adminuserinformation__user=user)
]
if user.has_perm("members.view_all_departments"):
department_address_id = [
department.address.id for department in Department.objects.all()
]
else:
department_address_id = [
department.address.id
for department in Department.objects.filter(
adminuserinformation__user=user
)
]

if user.has_perm("members.view_all_unions"):
union_address_id = [union.address.id for union in Union.objects.all()]
else:
union_address_id = [
union.address.id
for union in Union.objects.filter(adminuserinformation__user=user)
]

# Find all addresses not used by Union nor Department
address_id_all = [address.id for address in Address.objects.all()]
Expand Down
1 change: 1 addition & 0 deletions members/models/department.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class Meta:
verbose_name_plural = "Afdelinger"
verbose_name = "Afdeling"
ordering = ["address__zipcode"]
permissions = (("view_all_departments", "Can view all Afdelinger"),)

help_dept = """Vi tilføjer automatisk "Coding Pirates" foran navnet når vi
nævner det de fleste steder på siden."""
Expand Down
1 change: 1 addition & 0 deletions members/models/union.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class Meta:
verbose_name_plural = "Foreninger"
verbose_name = "Forening"
ordering = ["name"]
permissions = (("view_all_unions", "Can view all Foreninger"),)

help_union = """Vi tilføjer automatisk "Coding Pirates" foran navnet når vi nævner det de fleste steder på siden."""
name = models.CharField("Foreningens navn", max_length=200, help_text=help_union)
Expand Down

0 comments on commit c3e50af

Please sign in to comment.