merge
This commit is contained in:
@@ -59,6 +59,7 @@ class MemberAdmin(admin.ModelAdmin):
|
||||
'fields': (
|
||||
('firstname', 'surname',),
|
||||
'nickname',
|
||||
'username',
|
||||
'mailaccount',
|
||||
'role',
|
||||
'description',
|
||||
@@ -69,9 +70,10 @@ class MemberAdmin(admin.ModelAdmin):
|
||||
)
|
||||
}),
|
||||
)
|
||||
list_display = ['nickname', 'firstname', 'surname', 'mailaccount', 'role']
|
||||
inlines = (JobOverviewInline,)
|
||||
|
||||
list_display = ['nickname', 'firstname', 'surname', 'mailaccount', 'role']
|
||||
ordering = ['firstname', ]
|
||||
search_fields = ['firstname', 'surname', 'nickname', 'mailaccount']
|
||||
list_filter = [MemberRoleFilter]
|
||||
|
||||
@@ -97,10 +99,11 @@ class MemberAdmin(admin.ModelAdmin):
|
||||
class JobAdmin(admin.ModelAdmin):
|
||||
form = JobForm
|
||||
model = Job
|
||||
list_display = ['name']
|
||||
inlines = (ActiveMemberInline, InactiveMemberInline)
|
||||
|
||||
search_fields = ['name']
|
||||
list_display = ['name', ]
|
||||
ordering = ['name', ]
|
||||
search_fields = ['name', ]
|
||||
|
||||
def add_view(self, request, form_url='', extra_context=None):
|
||||
extra_context = extra_context or {}
|
||||
@@ -124,10 +127,11 @@ class JobAdmin(admin.ModelAdmin):
|
||||
class JobGroupAdmin(admin.ModelAdmin):
|
||||
form = JobGroupForm
|
||||
model = JobGroup
|
||||
list_display = ['name', 'is_pinned', ]
|
||||
inlines = (JobInline, )
|
||||
|
||||
search_fields = ['name']
|
||||
list_display = ['name', 'is_pinned', ]
|
||||
ordering = ['name', ]
|
||||
search_fields = ['name', ]
|
||||
|
||||
def add_view(self, request, form_url='', extra_context=None):
|
||||
extra_context = extra_context or {}
|
||||
|
||||
@@ -10,8 +10,8 @@ class MemberForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Member
|
||||
fields = [
|
||||
'firstname', 'surname', 'nickname', 'mailaccount', 'role', 'description', 'image',
|
||||
'birthday', 'phone', 'address',
|
||||
'firstname', 'surname', 'nickname', 'username', 'mailaccount', 'role', 'description',
|
||||
'image', 'birthday', 'phone', 'address',
|
||||
]
|
||||
|
||||
widgets = {
|
||||
|
||||
@@ -89,6 +89,7 @@ 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)
|
||||
username = models.CharField("Benutzername", blank=True, max_length=128)
|
||||
mailaccount = models.CharField("Mailadresse", unique=True, max_length=128)
|
||||
|
||||
class MemberRole(models.TextChoices):
|
||||
|
||||
@@ -9,7 +9,7 @@ urlpatterns = [
|
||||
]
|
||||
|
||||
member_urlpatterns = [
|
||||
path('<str:member_name>', views.profile_view, name='member'),
|
||||
path('<str:member_id>', views.profile_view, name='member'),
|
||||
]
|
||||
|
||||
jobs_urlpatterns = [
|
||||
|
||||
@@ -10,6 +10,9 @@ from .serializers import MemberSerializer, JobSerializer, JobGroupSerializer, Jo
|
||||
from rest_framework import viewsets
|
||||
#from rest_framework import permissions
|
||||
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def __remove_if_zero_active_mem(job_group):
|
||||
for elem in job_group:
|
||||
@@ -54,7 +57,12 @@ def index(request):
|
||||
def jobs_view(request, slug=None):
|
||||
pinned_job_groups, unpinned_job_groups = __get_job_groups()
|
||||
|
||||
description = JobGroup.all_jobgroups.filter(slug=slug).values().first()['description']
|
||||
try:
|
||||
description = JobGroup.all_jobgroups.filter(slug=slug).values().first()['description']
|
||||
except Exception as e:
|
||||
logger.info("Wrong job '{}'".format(slug))
|
||||
raise Http404("wrong job")
|
||||
|
||||
job_members = JobMember.active_member.get_all_by_slug(slug=slug)
|
||||
|
||||
context = {
|
||||
@@ -73,6 +81,7 @@ def members_view(request, filter=None):
|
||||
if filter in Member.MemberRole:
|
||||
members = deque(Member.all_members.filter(role=filter))
|
||||
else:
|
||||
logger.info("Wrong member role '{}'".format(filter))
|
||||
raise Http404("no member role")
|
||||
|
||||
context = {
|
||||
@@ -84,14 +93,15 @@ def members_view(request, filter=None):
|
||||
return render(request, 'members/index.html', context)
|
||||
|
||||
|
||||
def profile_view(request, member_name=None):
|
||||
def profile_view(request, member_id=None):
|
||||
pinned_job_groups, unpinned_job_groups = __get_job_groups()
|
||||
|
||||
member = Member.all_members.filter(nickname=member_name).first()
|
||||
member = Member.all_members.filter(id=member_id).first()
|
||||
if not member:
|
||||
logger.info("Wrong member id '{}'".format(member_id))
|
||||
raise Http404("no member")
|
||||
|
||||
jobs = deque(JobMember.members.filter(member__nickname=member_name))
|
||||
jobs = deque(JobMember.members.filter(member__id=member_id))
|
||||
|
||||
context = {
|
||||
"pinned_job_groups": pinned_job_groups,
|
||||
|
||||
@@ -59,6 +59,7 @@ class NewsForm(PostForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||
self.fields['author'].queryset = self.fields['author'].queryset.order_by('username')
|
||||
|
||||
|
||||
class EventForm(PostForm):
|
||||
@@ -98,6 +99,7 @@ class EventForm(PostForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||
self.fields['author'].queryset = self.fields['author'].queryset.order_by('username')
|
||||
|
||||
self.fields['event_start'].required = True
|
||||
self.fields['event_end'].required = True
|
||||
@@ -129,6 +131,7 @@ class FetMeetingForm(EventForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||
self.fields['author'].queryset = self.fields['author'].queryset.order_by('username')
|
||||
|
||||
self.fields['event_start'].required = True
|
||||
self.fields['event_end'].required = False
|
||||
|
||||
@@ -67,11 +67,13 @@ def show(request, id=None):
|
||||
elif id != "" and id is not None:
|
||||
p = Post.objects.get(slug=(id))
|
||||
|
||||
post_author = Member.all_members.filter(nickname=p.author).first()
|
||||
post_author = Member.all_members.filter(username=p.author).first()
|
||||
author_image = None
|
||||
author = None
|
||||
|
||||
if post_author:
|
||||
author_image = post_author.image['avatar'].url
|
||||
author = post_author
|
||||
|
||||
ep_agenda_link = "#"
|
||||
ep_protocol_link = "#"
|
||||
@@ -92,6 +94,7 @@ def show(request, id=None):
|
||||
|
||||
context = {
|
||||
"post": p,
|
||||
"author": author,
|
||||
"author_image": author_image,
|
||||
"next": get_next_dict(p),
|
||||
"related_posts": p.tags.similar_objects()[:6],
|
||||
|
||||
@@ -29,6 +29,7 @@ class TaskAdminForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||
self.fields['assigned_to'].empty_label = "Alle"
|
||||
self.fields['assigned_to'].queryset = self.fields['assigned_to'].queryset.order_by('username')
|
||||
|
||||
|
||||
class TaskForm(forms.ModelForm):
|
||||
@@ -58,13 +59,14 @@ class TaskForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||
self.fields['assigned_to'].empty_label = "Alle"
|
||||
self.fields['assigned_to'].queryset = self.fields['assigned_to'].queryset.order_by('username')
|
||||
|
||||
|
||||
class TaskListForm(forms.ModelForm):
|
||||
users = forms.ModelMultipleChoiceField(
|
||||
label="Benutzer",
|
||||
help_text="Es können nur die Benutzer ausgewählt werden, die sich auf der Homepage angemeldet haben.",
|
||||
queryset=User.objects.all(),
|
||||
queryset=User.objects.all().order_by('username'),
|
||||
widget=FilteredSelectMultiple("User", is_stacked=False)
|
||||
)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
<div class="grid-x align-bottom">
|
||||
{% for member in members %}
|
||||
<div class="cell large-2 medium-3 small-6 padding-right-1">
|
||||
<div class="cell large-2 medium-3 small-6 padding-right-1" style="text-align: center">
|
||||
<h2>{{member.firstname}} {{member.surname}}</h2>
|
||||
{% include 'members/partials/_member.html' %}
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
<div class="cell medium-3 large-2 small-6 padding-right-1">
|
||||
<div class="cell medium-3 large-2 small-6 padding-right-1" style="text-align: center">
|
||||
<h2>{{member.firstname}} {{member.surname}}</h2>
|
||||
{% include 'members/partials/_member.html' %}
|
||||
<br>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{# only thumb and name of member #}
|
||||
<a class="thumbnail member-thumb" href="{% url 'member' member.nickname %}" style="width:150px;height:150px">
|
||||
<a class="thumbnail member-thumb" href="{% url 'member' member.id %}" style="width:150px;height:150px">
|
||||
<img src="{{member.image.thumb.url}}" alt="" />
|
||||
<div class="thumb-layer">
|
||||
<div>
|
||||
|
||||
@@ -27,15 +27,23 @@
|
||||
<div>
|
||||
{{ post.subtitle|default_if_none:" "|tags_to_url }}
|
||||
</div>
|
||||
{% if post.author %}
|
||||
<div class="article-author"><a href="{% url 'member' post.author %}">
|
||||
<img src="{{ author_image }}" alt="" /> {{ post.author }}
|
||||
{% if author_image and author %}
|
||||
<div class="article-author">
|
||||
<a href="{% url 'member' author.id %}">
|
||||
<img src="{{ author_image }}" alt="" /> {{ author.firstname }}
|
||||
</a>
|
||||
</div>
|
||||
{% elif post.author %}
|
||||
<div class="article-author">
|
||||
<a href="">
|
||||
<img src="" alt="" /> {{ post.author }}
|
||||
</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="article-author"><a href="">
|
||||
<div class="article-author">
|
||||
<a href="">
|
||||
<img src="" alt="" />
|
||||
{{ post.author }}</a>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user