delete option is_pinned

This commit is contained in:
2022-07-31 07:52:35 +00:00
parent 9c5c79f376
commit f44e6f3330
7 changed files with 20 additions and 63 deletions

View File

@@ -135,7 +135,7 @@ class JobAdmin(admin.ModelAdmin):
"shortterm",
"slug",
)
}
},
),
)
inlines = (ActiveMemberInline, InactiveMemberInline)
@@ -169,7 +169,7 @@ class JobGroupAdmin(admin.ModelAdmin):
form = JobGroupForm
model = JobGroup
list_display = ["name", "is_pinned"]
list_display = ["name"]
ordering = ["name"]
search_fields = ["name"]
@@ -180,7 +180,6 @@ class JobGroupAdmin(admin.ModelAdmin):
"fields": (
"name",
"description",
"is_pinned",
)
},
),
@@ -191,7 +190,7 @@ class JobGroupAdmin(admin.ModelAdmin):
"shortterm",
"slug",
)
}
},
),
)
inlines = (JobInline,)

View File

@@ -57,10 +57,6 @@ class JobGroupForm(forms.ModelForm):
"shortterm": _("Kürzel des Tätigkeitsbereichs"),
"slug": _("Permalink"),
"description": _("Beschreibung des Tätigkeitsbereichs"),
"is_pinned": _(
"Dieser Tätigkeitsbereich soll im Fachschaftsbereich angeheftet werden, "
"damit es sofort ersichtlich ist."
),
}
widgets = {"description": CKEditorUploadingWidget(config_name="default")}

View File

@@ -65,14 +65,6 @@ class JobMemberManager(models.Manager):
)
class JobGroupManager(models.Manager):
def get_pinned_jobgroups(self):
return self.get_queryset().filter(is_pinned=True)
def get_unpinned_jobgroups(self):
return self.get_queryset().filter(is_pinned=False)
class MemberManager(models.Manager):
def get_queryset(self):
return super().get_queryset().order_by("firstname")

View File

@@ -13,7 +13,6 @@ from .managers import (
ActiveJobMemberManager,
InactiveJobMemberManager,
JobMemberManager,
JobGroupManager,
MemberManager,
)
from .validators import (
@@ -116,11 +115,8 @@ class JobGroup(models.Model):
description = models.TextField(null=True, blank=True)
is_pinned = models.BooleanField(verbose_name="ANGEHEFTET", default=False)
# Managers
objects = models.Manager()
all_jobgroups = JobGroupManager()
class Meta:
verbose_name = "Tätigkeitsbereich"

View File

@@ -1,5 +1,4 @@
import logging
from collections import deque
from django.http import Http404
from django.shortcuts import render
@@ -9,40 +8,24 @@ from .models import Member, JobMember, JobGroup
logger = logging.getLogger(__name__)
def __remove_if_zero_active_mem(job_group):
for elem in list(job_group):
job_members = JobMember.active_member.get_all_by_slug(slug=elem.slug)
if not job_members:
job_group.remove(elem)
return job_group
def __get_job_groups():
pinned_job_groups = deque(JobGroup.all_jobgroups.get_pinned_jobgroups())
unpinned_job_groups = deque(JobGroup.all_jobgroups.get_unpinned_jobgroups())
job_groups = list(JobGroup.objects.all())
# remove job group if there is no longer an active member
pinned_job_groups = __remove_if_zero_active_mem(pinned_job_groups)
unpinned_job_groups = __remove_if_zero_active_mem(unpinned_job_groups)
for elem in job_groups:
job_members = JobMember.active_member.get_all_by_slug(slug=elem.slug)
if not job_members:
job_groups.remove(elem)
# show max 5 pinned jobgroups
if len(pinned_job_groups) > 5:
for idx, val in enumerate(pinned_job_groups[5:]):
unpinned_job_groups.append(val)
pinned_job_groups = pinned_job_groups[:5]
return pinned_job_groups, unpinned_job_groups
return job_groups
def index(request):
pinned_job_groups, unpinned_job_groups = __get_job_groups()
job_groups = __get_job_groups()
members = Member.all_members.all()
context = {
"pinned_job_groups": pinned_job_groups,
"unpinned_job_groups": unpinned_job_groups,
"job_groups": job_groups,
"members": members,
}
@@ -50,12 +33,10 @@ def index(request):
def jobs(request, slug=None):
pinned_job_groups, unpinned_job_groups = __get_job_groups()
job_groups = __get_job_groups()
try:
description = (
JobGroup.all_jobgroups.filter(slug=slug).values().first()["description"]
)
description = JobGroup.objects.filter(slug=slug).values().first()["description"]
except Exception:
logger.info("Wrong job '{}'".format(slug))
raise Http404("wrong job")
@@ -64,8 +45,7 @@ def jobs(request, slug=None):
active_job_group = JobGroup.objects.filter(slug=slug).first()
context = {
"pinned_job_groups": pinned_job_groups,
"unpinned_job_groups": unpinned_job_groups,
"job_groups": job_groups,
"description": description,
"job_members": job_members,
"active_job_group": active_job_group,
@@ -75,7 +55,7 @@ def jobs(request, slug=None):
def members(request, filter=None):
pinned_job_groups, unpinned_job_groups = __get_job_groups()
job_groups = __get_job_groups()
for elem in Member.MemberRole:
if filter == elem.label.lower():
@@ -86,8 +66,7 @@ def members(request, filter=None):
raise Http404("no member role")
context = {
"pinned_job_groups": pinned_job_groups,
"unpinned_job_groups": unpinned_job_groups,
"job_groups": job_groups,
"members": members,
}
@@ -95,7 +74,7 @@ def members(request, filter=None):
def profile(request, member_id=None):
pinned_job_groups, unpinned_job_groups = __get_job_groups()
job_groups = __get_job_groups()
member = Member.all_members.filter(id=member_id).first()
if not member:
@@ -106,8 +85,7 @@ def profile(request, member_id=None):
inactive_jobs = JobMember.members.get_inactive_jobs(member_id)
context = {
"pinned_job_groups": pinned_job_groups,
"unpinned_job_groups": unpinned_job_groups,
"job_groups": job_groups,
"member": member,
"active_jobs": active_jobs,
"inactive_jobs": inactive_jobs,

View File

@@ -32,7 +32,7 @@ class JobGroupViewSet(viewsets.ModelViewSet):
API endpoint that allows users to be viewed or edited.
"""
queryset = JobGroup.all_jobgroups.all()
queryset = JobGroup.objects.all()
serializer_class = JobGroupSerializer
filter_backends = [DjangoFilterBackend]

View File

@@ -41,11 +41,7 @@
</div>
</div>
<ul class="sideBarNav">
{% for job in pinned_job_groups %}
{% include 'members/partials/_jobs_side_bar.html' %}
{% endfor %}
{% for job in unpinned_job_groups %}
{% for job in job_groups %}
{% include 'members/partials/_jobs_side_bar.html' %}
{% endfor %}