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

View File

@@ -57,10 +57,6 @@ class JobGroupForm(forms.ModelForm):
"shortterm": _("Kürzel des Tätigkeitsbereichs"), "shortterm": _("Kürzel des Tätigkeitsbereichs"),
"slug": _("Permalink"), "slug": _("Permalink"),
"description": _("Beschreibung des Tätigkeitsbereichs"), "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")} 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): class MemberManager(models.Manager):
def get_queryset(self): def get_queryset(self):
return super().get_queryset().order_by("firstname") return super().get_queryset().order_by("firstname")

View File

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

View File

@@ -1,5 +1,4 @@
import logging import logging
from collections import deque
from django.http import Http404 from django.http import Http404
from django.shortcuts import render from django.shortcuts import render
@@ -9,40 +8,24 @@ from .models import Member, JobMember, JobGroup
logger = logging.getLogger(__name__) 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(): def __get_job_groups():
pinned_job_groups = deque(JobGroup.all_jobgroups.get_pinned_jobgroups()) job_groups = list(JobGroup.objects.all())
unpinned_job_groups = deque(JobGroup.all_jobgroups.get_unpinned_jobgroups())
# remove job group if there is no longer an active member # remove job group if there is no longer an active member
pinned_job_groups = __remove_if_zero_active_mem(pinned_job_groups) for elem in job_groups:
unpinned_job_groups = __remove_if_zero_active_mem(unpinned_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 return job_groups
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
def index(request): def index(request):
pinned_job_groups, unpinned_job_groups = __get_job_groups() job_groups = __get_job_groups()
members = Member.all_members.all() members = Member.all_members.all()
context = { context = {
"pinned_job_groups": pinned_job_groups, "job_groups": job_groups,
"unpinned_job_groups": unpinned_job_groups,
"members": members, "members": members,
} }
@@ -50,12 +33,10 @@ def index(request):
def jobs(request, slug=None): def jobs(request, slug=None):
pinned_job_groups, unpinned_job_groups = __get_job_groups() job_groups = __get_job_groups()
try: try:
description = ( description = JobGroup.objects.filter(slug=slug).values().first()["description"]
JobGroup.all_jobgroups.filter(slug=slug).values().first()["description"]
)
except Exception: except Exception:
logger.info("Wrong job '{}'".format(slug)) logger.info("Wrong job '{}'".format(slug))
raise Http404("wrong job") raise Http404("wrong job")
@@ -64,8 +45,7 @@ def jobs(request, slug=None):
active_job_group = JobGroup.objects.filter(slug=slug).first() active_job_group = JobGroup.objects.filter(slug=slug).first()
context = { context = {
"pinned_job_groups": pinned_job_groups, "job_groups": job_groups,
"unpinned_job_groups": unpinned_job_groups,
"description": description, "description": description,
"job_members": job_members, "job_members": job_members,
"active_job_group": active_job_group, "active_job_group": active_job_group,
@@ -75,7 +55,7 @@ def jobs(request, slug=None):
def members(request, filter=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: for elem in Member.MemberRole:
if filter == elem.label.lower(): if filter == elem.label.lower():
@@ -86,8 +66,7 @@ def members(request, filter=None):
raise Http404("no member role") raise Http404("no member role")
context = { context = {
"pinned_job_groups": pinned_job_groups, "job_groups": job_groups,
"unpinned_job_groups": unpinned_job_groups,
"members": members, "members": members,
} }
@@ -95,7 +74,7 @@ def members(request, filter=None):
def profile(request, member_id=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() member = Member.all_members.filter(id=member_id).first()
if not member: if not member:
@@ -106,8 +85,7 @@ def profile(request, member_id=None):
inactive_jobs = JobMember.members.get_inactive_jobs(member_id) inactive_jobs = JobMember.members.get_inactive_jobs(member_id)
context = { context = {
"pinned_job_groups": pinned_job_groups, "job_groups": job_groups,
"unpinned_job_groups": unpinned_job_groups,
"member": member, "member": member,
"active_jobs": active_jobs, "active_jobs": active_jobs,
"inactive_jobs": inactive_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. API endpoint that allows users to be viewed or edited.
""" """
queryset = JobGroup.all_jobgroups.all() queryset = JobGroup.objects.all()
serializer_class = JobGroupSerializer serializer_class = JobGroupSerializer
filter_backends = [DjangoFilterBackend] filter_backends = [DjangoFilterBackend]

View File

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