linting
This commit is contained in:
@@ -6,13 +6,13 @@ from .forms import MemberForm, JobForm, JobGroupForm
|
||||
|
||||
|
||||
class MemberRoleFilter(admin.SimpleListFilter):
|
||||
title = _('Rolle')
|
||||
parameter_name = 'role'
|
||||
title = _("Rolle")
|
||||
parameter_name = "role"
|
||||
|
||||
def lookups(self, request, model_admin):
|
||||
return (
|
||||
('A', _('Aktiv')),
|
||||
('P', _('Pension')),
|
||||
("A", _("Aktiv")),
|
||||
("P", _("Pension")),
|
||||
)
|
||||
|
||||
def queryset(self, request, queryset):
|
||||
@@ -55,40 +55,53 @@ class MemberAdmin(admin.ModelAdmin):
|
||||
form = MemberForm
|
||||
model = Member
|
||||
fieldsets = (
|
||||
(None, {
|
||||
'fields': (
|
||||
('firstname', 'surname',),
|
||||
'nickname',
|
||||
'username',
|
||||
'mailaccount',
|
||||
'role',
|
||||
'description',
|
||||
'image',
|
||||
'birthday',
|
||||
'phone',
|
||||
'address',
|
||||
)
|
||||
}),
|
||||
(
|
||||
None,
|
||||
{
|
||||
"fields": (
|
||||
(
|
||||
"firstname",
|
||||
"surname",
|
||||
),
|
||||
"nickname",
|
||||
"username",
|
||||
"mailaccount",
|
||||
"role",
|
||||
"description",
|
||||
"image",
|
||||
"birthday",
|
||||
"phone",
|
||||
"address",
|
||||
)
|
||||
},
|
||||
),
|
||||
)
|
||||
inlines = (JobOverviewInline,)
|
||||
|
||||
list_display = ['nickname', 'firstname', 'surname', 'mailaccount', 'role']
|
||||
ordering = ['firstname', ]
|
||||
search_fields = ['firstname', 'surname', 'nickname', 'mailaccount']
|
||||
list_display = ["nickname", "firstname", "surname", "mailaccount", "role"]
|
||||
ordering = [
|
||||
"firstname",
|
||||
]
|
||||
search_fields = ["firstname", "surname", "nickname", "mailaccount"]
|
||||
list_filter = [MemberRoleFilter]
|
||||
|
||||
def add_view(self, request, form_url='', extra_context=None):
|
||||
def add_view(self, request, form_url="", extra_context=None):
|
||||
extra_context = extra_context or {}
|
||||
extra_context['help_text'] = "Fette Schriften sind Pflichtfelder."
|
||||
extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
|
||||
return super().add_view(
|
||||
request, form_url, extra_context=extra_context,
|
||||
request,
|
||||
form_url,
|
||||
extra_context=extra_context,
|
||||
)
|
||||
|
||||
def change_view(self, request, object_id, form_url='', extra_context=None):
|
||||
def change_view(self, request, object_id, form_url="", extra_context=None):
|
||||
extra_context = extra_context or {}
|
||||
extra_context['help_text'] = "Fette Schriften sind Pflichtfelder."
|
||||
extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
|
||||
return super().change_view(
|
||||
request, object_id, form_url, extra_context=extra_context,
|
||||
request,
|
||||
object_id,
|
||||
form_url,
|
||||
extra_context=extra_context,
|
||||
)
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
@@ -101,22 +114,33 @@ class JobAdmin(admin.ModelAdmin):
|
||||
model = Job
|
||||
inlines = (ActiveMemberInline, InactiveMemberInline)
|
||||
|
||||
list_display = ['name', ]
|
||||
ordering = ['name', ]
|
||||
search_fields = ['name', ]
|
||||
list_display = [
|
||||
"name",
|
||||
]
|
||||
ordering = [
|
||||
"name",
|
||||
]
|
||||
search_fields = [
|
||||
"name",
|
||||
]
|
||||
|
||||
def add_view(self, request, form_url='', extra_context=None):
|
||||
def add_view(self, request, form_url="", extra_context=None):
|
||||
extra_context = extra_context or {}
|
||||
extra_context['help_text'] = "Fette Schriften sind Pflichtfelder."
|
||||
extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
|
||||
return super().add_view(
|
||||
request, form_url, extra_context=extra_context,
|
||||
request,
|
||||
form_url,
|
||||
extra_context=extra_context,
|
||||
)
|
||||
|
||||
def change_view(self, request, object_id, form_url='', extra_context=None):
|
||||
def change_view(self, request, object_id, form_url="", extra_context=None):
|
||||
extra_context = extra_context or {}
|
||||
extra_context['help_text'] = "Fette Schriften sind Pflichfelder."
|
||||
extra_context["help_text"] = "Fette Schriften sind Pflichfelder."
|
||||
return super().change_view(
|
||||
request, object_id, form_url, extra_context=extra_context,
|
||||
request,
|
||||
object_id,
|
||||
form_url,
|
||||
extra_context=extra_context,
|
||||
)
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
@@ -127,24 +151,36 @@ class JobAdmin(admin.ModelAdmin):
|
||||
class JobGroupAdmin(admin.ModelAdmin):
|
||||
form = JobGroupForm
|
||||
model = JobGroup
|
||||
inlines = (JobInline, )
|
||||
inlines = (JobInline,)
|
||||
|
||||
list_display = ['name', 'is_pinned', ]
|
||||
ordering = ['name', ]
|
||||
search_fields = ['name', ]
|
||||
list_display = [
|
||||
"name",
|
||||
"is_pinned",
|
||||
]
|
||||
ordering = [
|
||||
"name",
|
||||
]
|
||||
search_fields = [
|
||||
"name",
|
||||
]
|
||||
|
||||
def add_view(self, request, form_url='', extra_context=None):
|
||||
def add_view(self, request, form_url="", extra_context=None):
|
||||
extra_context = extra_context or {}
|
||||
extra_context['help_text'] = "Fette Schriften sind Pflichtfelder."
|
||||
extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
|
||||
return super().add_view(
|
||||
request, form_url, extra_context=extra_context,
|
||||
request,
|
||||
form_url,
|
||||
extra_context=extra_context,
|
||||
)
|
||||
|
||||
def change_view(self, request, object_id, form_url='', extra_context=None):
|
||||
def change_view(self, request, object_id, form_url="", extra_context=None):
|
||||
extra_context = extra_context or {}
|
||||
extra_context['help_text'] = "Fette Schriften sind Pflichfelder."
|
||||
extra_context["help_text"] = "Fette Schriften sind Pflichfelder."
|
||||
return super().change_view(
|
||||
request, object_id, form_url, extra_context=extra_context,
|
||||
request,
|
||||
object_id,
|
||||
form_url,
|
||||
extra_context=extra_context,
|
||||
)
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
|
||||
@@ -2,4 +2,4 @@ from django.apps import AppConfig
|
||||
|
||||
|
||||
class MembersConfig(AppConfig):
|
||||
name = 'members'
|
||||
name = "members"
|
||||
|
||||
@@ -10,56 +10,68 @@ class MemberForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Member
|
||||
fields = [
|
||||
'firstname', 'surname', 'nickname', 'username', 'mailaccount', 'role', 'description',
|
||||
'image', 'birthday', 'phone', 'address',
|
||||
"firstname",
|
||||
"surname",
|
||||
"nickname",
|
||||
"username",
|
||||
"mailaccount",
|
||||
"role",
|
||||
"description",
|
||||
"image",
|
||||
"birthday",
|
||||
"phone",
|
||||
"address",
|
||||
]
|
||||
|
||||
widgets = {
|
||||
'description': CKEditorUploadingWidget(config_name='default')
|
||||
}
|
||||
widgets = {"description": CKEditorUploadingWidget(config_name="default")}
|
||||
|
||||
labels = {
|
||||
'description': _("Beschreibung zu der Person"),
|
||||
'image': _("Porträt"),
|
||||
'birthday': _("Geburtstag"),
|
||||
'phone': _("Telefonnummer"),
|
||||
'address': _("Wohnadresse"),
|
||||
"description": _("Beschreibung zu der Person"),
|
||||
"image": _("Porträt"),
|
||||
"birthday": _("Geburtstag"),
|
||||
"phone": _("Telefonnummer"),
|
||||
"address": _("Wohnadresse"),
|
||||
}
|
||||
|
||||
help_texts = {
|
||||
'image': _(
|
||||
"Mindestgröße: 150*150 px, Verwendbare Formate: ..."
|
||||
),
|
||||
'mailaccount': _(
|
||||
"Die Mailadresse mit '@fet.at' angeben."
|
||||
),
|
||||
"image": _("Mindestgröße: 150*150 px, Verwendbare Formate: ..."),
|
||||
"mailaccount": _("Die Mailadresse mit '@fet.at' angeben."),
|
||||
}
|
||||
|
||||
|
||||
class JobForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Job
|
||||
fields = ['name', 'shortterm', 'slug', 'job_group',]
|
||||
fields = [
|
||||
"name",
|
||||
"shortterm",
|
||||
"slug",
|
||||
"job_group",
|
||||
]
|
||||
|
||||
labels = {
|
||||
'shortterm': _("Kürzel der Tätigkeit"),
|
||||
'job_group': _("Tätigkeitsbereich"),
|
||||
"shortterm": _("Kürzel der Tätigkeit"),
|
||||
"job_group": _("Tätigkeitsbereich"),
|
||||
}
|
||||
|
||||
|
||||
class JobGroupForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = JobGroup
|
||||
fields = ['name', 'shortterm', 'slug', 'description', 'is_pinned',]
|
||||
fields = [
|
||||
"name",
|
||||
"shortterm",
|
||||
"slug",
|
||||
"description",
|
||||
"is_pinned",
|
||||
]
|
||||
|
||||
widgets = {
|
||||
'description': CKEditorUploadingWidget(config_name='default')
|
||||
}
|
||||
widgets = {"description": CKEditorUploadingWidget(config_name="default")}
|
||||
|
||||
labels = {
|
||||
'shortterm': _("Kürzel des Tätigkeitsbereichs"),
|
||||
'description': _("Beschreibung des Tätigkeitsbereichs"),
|
||||
'is_pinned': _(
|
||||
"shortterm": _("Kürzel des Tätigkeitsbereichs"),
|
||||
"description": _("Beschreibung des Tätigkeitsbereichs"),
|
||||
"is_pinned": _(
|
||||
"Dieser Tätigkeitsbereich soll im Fachschaftsbereich angeheftet werden, damit es sofort ersichtlich ist."
|
||||
),
|
||||
}
|
||||
|
||||
@@ -10,15 +10,20 @@ from easy_thumbnails.fields import ThumbnailerImageField
|
||||
|
||||
|
||||
class ActiveJobMemberManager(models.Manager):
|
||||
'''
|
||||
"""
|
||||
return a list of active member, and members who are still working
|
||||
'''
|
||||
"""
|
||||
|
||||
def get_all_by_slug(self, slug):
|
||||
return self.get_queryset().filter(job__job_group__slug=slug).order_by('job__slug', 'job_role', 'member__firstname')
|
||||
return (
|
||||
self.get_queryset()
|
||||
.filter(job__job_group__slug=slug)
|
||||
.order_by("job__slug", "job_role", "member__firstname")
|
||||
)
|
||||
|
||||
def get_queryset(self):
|
||||
date_today = timezone.now().date()
|
||||
qs = super().get_queryset().order_by('member__firstname')
|
||||
qs = super().get_queryset().order_by("member__firstname")
|
||||
|
||||
return qs.filter(
|
||||
Q(member__role=Member.MemberRole.ACTIVE)
|
||||
@@ -27,15 +32,20 @@ class ActiveJobMemberManager(models.Manager):
|
||||
|
||||
|
||||
class InactiveJobMemberManager(models.Manager):
|
||||
'''
|
||||
"""
|
||||
return a list of inactive member
|
||||
'''
|
||||
"""
|
||||
|
||||
def get_all_by_slug(self, slug):
|
||||
return self.get_queryset().filter(job__job_group__slug=slug).order_by('job__slug', 'job_role', 'member__firstname')
|
||||
return (
|
||||
self.get_queryset()
|
||||
.filter(job__job_group__slug=slug)
|
||||
.order_by("job__slug", "job_role", "member__firstname")
|
||||
)
|
||||
|
||||
def get_queryset(self):
|
||||
date_today = timezone.now().date()
|
||||
qs = super().get_queryset().order_by('member__firstname')
|
||||
qs = super().get_queryset().order_by("member__firstname")
|
||||
|
||||
return qs.filter(
|
||||
Q(member__role=Member.MemberRole.PENSION)
|
||||
@@ -45,7 +55,7 @@ class InactiveJobMemberManager(models.Manager):
|
||||
|
||||
class JobMemberManager(models.Manager):
|
||||
def get_members(self, role):
|
||||
qs = self.get_queryset().order_by('member__firstname')
|
||||
qs = self.get_queryset().order_by("member__firstname")
|
||||
|
||||
return qs.filter(Q(member__role=role))
|
||||
|
||||
@@ -82,19 +92,19 @@ class JobGroupManager(models.Manager):
|
||||
|
||||
class MemberManager(models.Manager):
|
||||
def get_queryset(self):
|
||||
return super().get_queryset().order_by('firstname')
|
||||
return super().get_queryset().order_by("firstname")
|
||||
|
||||
|
||||
class Member(models.Model):
|
||||
firstname = models.CharField("Vorname", max_length=128)
|
||||
surname = models.CharField("Nachname", max_length=128)
|
||||
nickname = models.CharField("Spitzname", max_length=128)
|
||||
nickname = models.CharField("Spitzname", max_length=128)
|
||||
username = models.CharField("Benutzername", blank=True, max_length=128)
|
||||
mailaccount = models.CharField("Mailadresse", unique=True, max_length=128)
|
||||
|
||||
class MemberRole(models.TextChoices):
|
||||
ACTIVE = 'A', _('Active')
|
||||
PENSION = 'P', _('Pension')
|
||||
ACTIVE = "A", _("Active")
|
||||
PENSION = "P", _("Pension")
|
||||
|
||||
role = models.CharField(
|
||||
"Rolle",
|
||||
@@ -104,14 +114,16 @@ class Member(models.Model):
|
||||
)
|
||||
|
||||
description = models.TextField(null=True, blank=True)
|
||||
image = ThumbnailerImageField(upload_to='uploads/members/image/')
|
||||
image = ThumbnailerImageField(upload_to="uploads/members/image/")
|
||||
|
||||
birthday = models.DateField(null=True, blank=True)
|
||||
|
||||
phone_error_msg = _((
|
||||
"Phone number must be entered in the format: +999999999'. Up to 15 digits allowed."
|
||||
))
|
||||
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message=phone_error_msg)
|
||||
phone_error_msg = _(
|
||||
(
|
||||
"Phone number must be entered in the format: +999999999'. Up to 15 digits allowed."
|
||||
)
|
||||
)
|
||||
phone_regex = RegexValidator(regex=r"^\+?1?\d{9,15}$", message=phone_error_msg)
|
||||
phone = models.CharField(validators=[phone_regex], max_length=17, blank=True)
|
||||
|
||||
address = models.TextField(null=True, blank=True)
|
||||
@@ -134,15 +146,12 @@ class Member(models.Model):
|
||||
if self.image.height < 150 or self.image.width < 150:
|
||||
raise ValidationError(
|
||||
_("Das Bild ist zu klein. (Höhe: {}, Breite: {})").format(
|
||||
self.image.height,
|
||||
self.image.width
|
||||
self.image.height, self.image.width
|
||||
)
|
||||
)
|
||||
|
||||
if not "@fet.at" in self.mailaccount:
|
||||
raise ValidationError(
|
||||
_("In der Mailadresse fehlt die Domäne.")
|
||||
)
|
||||
raise ValidationError(_("In der Mailadresse fehlt die Domäne."))
|
||||
|
||||
def __str__(self):
|
||||
return self.firstname + " " + self.surname
|
||||
@@ -198,7 +207,7 @@ class Job(models.Model):
|
||||
def save(self, *args, **kwargs):
|
||||
if not self.slug:
|
||||
self.slug = slugify(self.shortterm)
|
||||
#if type(self.job_group) = str:
|
||||
# if type(self.job_group) = str:
|
||||
# self.job_group=JobGroup.objects.filter(slug=self.job)
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
@@ -218,18 +227,20 @@ class JobMember(models.Model):
|
||||
verbose_name="Tätigkeit",
|
||||
)
|
||||
|
||||
job_start = models.DateField('Job Start')
|
||||
job_end = models.DateField('Job Ende', null=True, blank=True)
|
||||
job_start = models.DateField("Job Start")
|
||||
job_end = models.DateField("Job Ende", null=True, blank=True)
|
||||
|
||||
class JobRole(models.TextChoices):
|
||||
PRESIDENT = ('10', _('VorsitzendeR'))
|
||||
VICE_PRESIDENT = ('20', _('stv VorsitzendeR'))
|
||||
SECOND_VICE_PRESIDENT = ('30', _('2. stv VorsitzendeR'))
|
||||
PERSON_RESPONSIBLE = ('40', _('VerantwortlicheR'))
|
||||
MEMBER = ('50', _('Mitglied'))
|
||||
SUBSTITUTE_MEMBER = ('60', _('Ersatzmitglied'))
|
||||
PRESIDENT = ("10", _("VorsitzendeR"))
|
||||
VICE_PRESIDENT = ("20", _("stv VorsitzendeR"))
|
||||
SECOND_VICE_PRESIDENT = ("30", _("2. stv VorsitzendeR"))
|
||||
PERSON_RESPONSIBLE = ("40", _("VerantwortlicheR"))
|
||||
MEMBER = ("50", _("Mitglied"))
|
||||
SUBSTITUTE_MEMBER = ("60", _("Ersatzmitglied"))
|
||||
|
||||
job_role = models.CharField(max_length=2, choices=JobRole.choices, default=JobRole.MEMBER)
|
||||
job_role = models.CharField(
|
||||
max_length=2, choices=JobRole.choices, default=JobRole.MEMBER
|
||||
)
|
||||
|
||||
objects = models.Manager()
|
||||
members = JobMemberManager()
|
||||
|
||||
@@ -4,65 +4,50 @@ from rest_framework import serializers
|
||||
|
||||
|
||||
class MemberSerializer(serializers.HyperlinkedModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Member
|
||||
fields = ['id',
|
||||
'firstname',
|
||||
'surname',
|
||||
'nickname',
|
||||
'mailaccount',
|
||||
'role',
|
||||
'description',
|
||||
'image',
|
||||
'birthday',
|
||||
fields = [
|
||||
"id",
|
||||
"firstname",
|
||||
"surname",
|
||||
"nickname",
|
||||
"mailaccount",
|
||||
"role",
|
||||
"description",
|
||||
"image",
|
||||
"birthday",
|
||||
]
|
||||
|
||||
|
||||
class JobGroupSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = JobGroup
|
||||
fields = [
|
||||
'id',
|
||||
'name',
|
||||
'shortterm',
|
||||
'slug'
|
||||
]
|
||||
fields = ["id", "name", "shortterm", "slug"]
|
||||
|
||||
|
||||
class JobSerializer(serializers.HyperlinkedModelSerializer):
|
||||
#job_group = JobGroupSerializer()
|
||||
# job_group = JobGroupSerializer()
|
||||
job_group = serializers.SlugRelatedField(
|
||||
slug_field='slug',queryset = JobGroup.objects
|
||||
)
|
||||
slug_field="slug", queryset=JobGroup.objects
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Job
|
||||
fields = [
|
||||
'id',
|
||||
'name',
|
||||
'shortterm',
|
||||
'job_group',
|
||||
'slug'
|
||||
]
|
||||
fields = ["id", "name", "shortterm", "job_group", "slug"]
|
||||
|
||||
|
||||
class JobMemberSerializer(serializers.HyperlinkedModelSerializer):
|
||||
#member = MemberSerializer()
|
||||
#job = JobSerializer()
|
||||
job = serializers.SlugRelatedField(
|
||||
slug_field='slug',queryset = Job.objects
|
||||
)
|
||||
member= serializers.SlugRelatedField(
|
||||
slug_field='mailaccount',queryset = Member.objects
|
||||
)
|
||||
# member = MemberSerializer()
|
||||
# job = JobSerializer()
|
||||
job = serializers.SlugRelatedField(slug_field="slug", queryset=Job.objects)
|
||||
member = serializers.SlugRelatedField(
|
||||
slug_field="mailaccount", queryset=Member.objects
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = JobMember
|
||||
fields = [
|
||||
'id',
|
||||
'job_start',
|
||||
'job_end',
|
||||
'member',
|
||||
'job',
|
||||
'job_role'
|
||||
]
|
||||
fields = ["id", "job_start", "job_end", "member", "job", "job_role"]
|
||||
|
||||
|
||||
# def create(self, validated_data):
|
||||
# member_data = validated_data.pop('member')
|
||||
|
||||
@@ -4,14 +4,14 @@ from . import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
path('', views.index, name='members'),
|
||||
path('<str:filter>', views.members_view),
|
||||
path("", views.index, name="members"),
|
||||
path("<str:filter>", views.members_view),
|
||||
]
|
||||
|
||||
member_urlpatterns = [
|
||||
path('<str:member_id>', views.profile_view, name='member'),
|
||||
path("<str:member_id>", views.profile_view, name="member"),
|
||||
]
|
||||
|
||||
jobs_urlpatterns = [
|
||||
path('<str:slug>', views.jobs_view, name='jobs'),
|
||||
path("<str:slug>", views.jobs_view, name="jobs"),
|
||||
]
|
||||
|
||||
@@ -7,6 +7,7 @@ from .models import Member, JobMember, JobGroup, Job
|
||||
from posts.models import Post
|
||||
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -41,7 +42,7 @@ def index(request):
|
||||
pinned_job_groups, unpinned_job_groups = __get_job_groups()
|
||||
members = deque(Member.all_members.all())
|
||||
|
||||
fs_info = Post.objects.filter(slug='fachschaft-info').first()
|
||||
fs_info = Post.objects.filter(slug="fachschaft-info").first()
|
||||
|
||||
context = {
|
||||
"pinned_job_groups": pinned_job_groups,
|
||||
@@ -50,14 +51,16 @@ def index(request):
|
||||
"fs_info": fs_info,
|
||||
}
|
||||
|
||||
return render(request, 'members/index.html', context)
|
||||
return render(request, "members/index.html", context)
|
||||
|
||||
|
||||
def jobs_view(request, slug=None):
|
||||
pinned_job_groups, unpinned_job_groups = __get_job_groups()
|
||||
|
||||
try:
|
||||
description = JobGroup.all_jobgroups.filter(slug=slug).values().first()['description']
|
||||
description = (
|
||||
JobGroup.all_jobgroups.filter(slug=slug).values().first()["description"]
|
||||
)
|
||||
except Exception as e:
|
||||
logger.info("Wrong job '{}'".format(slug))
|
||||
raise Http404("wrong job")
|
||||
@@ -71,7 +74,7 @@ def jobs_view(request, slug=None):
|
||||
"job_members": job_members,
|
||||
}
|
||||
|
||||
return render(request, 'members/index.html', context)
|
||||
return render(request, "members/index.html", context)
|
||||
|
||||
|
||||
def members_view(request, filter=None):
|
||||
@@ -83,7 +86,7 @@ def members_view(request, filter=None):
|
||||
logger.info("Wrong member role '{}'".format(filter))
|
||||
raise Http404("no member role")
|
||||
|
||||
fs_info = Post.objects.filter(slug='fachschaft-info').first()
|
||||
fs_info = Post.objects.filter(slug="fachschaft-info").first()
|
||||
|
||||
context = {
|
||||
"pinned_job_groups": pinned_job_groups,
|
||||
@@ -92,7 +95,7 @@ def members_view(request, filter=None):
|
||||
"fs_info": fs_info,
|
||||
}
|
||||
|
||||
return render(request, 'members/index.html', context)
|
||||
return render(request, "members/index.html", context)
|
||||
|
||||
|
||||
def profile_view(request, member_id=None):
|
||||
@@ -112,4 +115,4 @@ def profile_view(request, member_id=None):
|
||||
"jobs": jobs,
|
||||
}
|
||||
|
||||
return render(request, 'members/member.html', context)
|
||||
return render(request, "members/member.html", context)
|
||||
|
||||
@@ -2,54 +2,63 @@ from django_filters.rest_framework import DjangoFilterBackend
|
||||
from rest_framework import viewsets
|
||||
|
||||
from .models import Member, JobMember, JobGroup, Job
|
||||
from .serializers import MemberSerializer, JobSerializer, JobGroupSerializer, JobMemberSerializer
|
||||
from .serializers import (
|
||||
MemberSerializer,
|
||||
JobSerializer,
|
||||
JobGroupSerializer,
|
||||
JobMemberSerializer,
|
||||
)
|
||||
|
||||
|
||||
class MemberViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows users to be viewed or edited.
|
||||
"""
|
||||
queryset = Member.all_members.order_by('nickname')
|
||||
|
||||
queryset = Member.all_members.order_by("nickname")
|
||||
serializer_class = MemberSerializer
|
||||
|
||||
#permission_classes = [permissions.IsAuthenticated]
|
||||
# permission_classes = [permissions.IsAuthenticated]
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['nickname','mailaccount']
|
||||
#lookup_field = 'name'
|
||||
filterset_fields = ["nickname", "mailaccount"]
|
||||
# lookup_field = 'name'
|
||||
|
||||
def pre_save(self, obj):
|
||||
obj.image = self.request.FILES.get('image')
|
||||
obj.image = self.request.FILES.get("image")
|
||||
|
||||
|
||||
class JobGroupViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows users to be viewed or edited.
|
||||
"""
|
||||
|
||||
queryset = JobGroup.all_jobgroups.all()
|
||||
serializer_class = JobGroupSerializer
|
||||
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['name','slug']
|
||||
#lookup_field = 'name'
|
||||
filterset_fields = ["name", "slug"]
|
||||
# lookup_field = 'name'
|
||||
|
||||
|
||||
class JobViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows users to be viewed or edited.
|
||||
"""
|
||||
|
||||
queryset = Job.objects.all()
|
||||
serializer_class = JobSerializer
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['name','slug']
|
||||
#lookup_field = 'slug'
|
||||
filterset_fields = ["name", "slug"]
|
||||
# lookup_field = 'slug'
|
||||
|
||||
|
||||
class JobMemberViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows users to be viewed or edited.
|
||||
"""
|
||||
|
||||
queryset = JobMember.objects.all()
|
||||
serializer_class = JobMemberSerializer
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['member','job','job_role','job_start']
|
||||
#lookup_field = 'nickname'
|
||||
filterset_fields = ["member", "job", "job_role", "job_start"]
|
||||
# lookup_field = 'nickname'
|
||||
|
||||
Reference in New Issue
Block a user