delete option is_pinned
This commit is contained in:
@@ -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,)
|
||||||
|
|||||||
@@ -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")}
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user