add order to jobs

This commit is contained in:
2023-08-01 22:42:53 +00:00
parent 61b68ec8ea
commit 3107cd0806
3 changed files with 17 additions and 3 deletions

View File

@@ -6,9 +6,16 @@ from .models import Job, JobGroup, JobMember, Member
class JobInlineForm(forms.ModelForm): class JobInlineForm(forms.ModelForm):
class Meta: class Meta:
fields = ["name"] fields = [
"name",
"order",
]
model = Job model = Job
labels = {
"order": "Reihenfolge",
}
class ActiveMemberForm(forms.ModelForm): class ActiveMemberForm(forms.ModelForm):
class Meta: class Meta:

View File

@@ -3,8 +3,10 @@ import logging
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.validators import ValidationError, validate_email from django.core.validators import ValidationError, validate_email
from django.db import models from django.db import models
from django.db.models import F
from django.urls import reverse from django.urls import reverse
from django.utils.text import slugify from django.utils.text import slugify
from easy_thumbnails.fields import ThumbnailerImageField from easy_thumbnails.fields import ThumbnailerImageField
from .managers import ( from .managers import (
@@ -139,6 +141,8 @@ class Job(models.Model):
shortterm = models.CharField(max_length=128, unique=True, blank=True) shortterm = models.CharField(max_length=128, unique=True, blank=True)
slug = models.SlugField(unique=True, null=True, blank=True) slug = models.SlugField(unique=True, null=True, blank=True)
order = models.PositiveSmallIntegerField(null=True, blank=True)
job_group = models.ForeignKey( job_group = models.ForeignKey(
JobGroup, JobGroup,
on_delete=models.CASCADE, on_delete=models.CASCADE,
@@ -149,7 +153,7 @@ class Job(models.Model):
objects = models.Manager() objects = models.Manager()
class Meta: class Meta:
ordering = ["name"] ordering = (F("order").asc(nulls_last=True), "name")
verbose_name = "Tätigkeit" verbose_name = "Tätigkeit"
verbose_name_plural = "Tätigkeiten" verbose_name_plural = "Tätigkeiten"

View File

@@ -1,5 +1,6 @@
import logging import logging
from django.db.models import F
from django.http import Http404 from django.http import Http404
from django.shortcuts import render from django.shortcuts import render
@@ -25,7 +26,9 @@ def jobs(request, slug=None):
logger.info("Wrong job '{}'".format(slug)) logger.info("Wrong job '{}'".format(slug))
raise Http404("wrong job") raise Http404("wrong job")
job_members = JobMember.active_member.get_all(slug=slug) job_members = JobMember.active_member.get_all(slug=slug).order_by(
F("job__order").asc(nulls_last=True), "job__name"
)
active_job_group = JobGroup.objects.filter(slug=slug).first() active_job_group = JobGroup.objects.filter(slug=slug).first()
context = { context = {