Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#980] Medlemmer af SEK kan nu se alle afdelinger, foreninger + div objekter #1013

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading