basic klettertreff view structure

v1-0-stable
relnod 9 years ago
parent c3d84ba9ef
commit 15f929697e

@ -13,6 +13,7 @@ from django.contrib.admin import DateFieldListFilter
from django.utils.translation import ugettext_lazy as translate from django.utils.translation import ugettext_lazy as translate
from django.db.models import TextField from django.db.models import TextField
from django.forms import Textarea from django.forms import Textarea
from django.shortcuts import render
from .models import (Member, Group, MemberList, MemberOnList, Klettertreff, from .models import (Member, Group, MemberList, MemberOnList, Klettertreff,
KlettertreffAttendee) KlettertreffAttendee)
@ -145,6 +146,18 @@ class KlettertreffAdmin(admin.ModelAdmin):
inlines = [KlettertreffAttendeeInline] inlines = [KlettertreffAttendeeInline]
list_display = ['__str__', 'date', 'get_jugendleiter'] list_display = ['__str__', 'date', 'get_jugendleiter']
list_filter = [('date', DateFieldListFilter)] list_filter = [('date', DateFieldListFilter)]
actions = ['overview']
def overview(self, request, queryset):
context = {
'klettertreffs': queryset,
'members': Member.objects.all(),
'attendees': KlettertreffAttendee.objects.all()
}
return render(request, 'admin/klettertreff_overview.html',
context)
admin.site.register(Member, MemberAdmin) admin.site.register(Member, MemberAdmin)
admin.site.register(Group, GroupAdmin) admin.site.register(Group, GroupAdmin)

@ -120,8 +120,18 @@ class Klettertreff(models.Model):
jl_string = jl_string[:-2] jl_string = jl_string[:-2]
return jl_string return jl_string
def has_attendee(self, member):
attendees = KlettertreffAttendee.objects.filter(
member__id__contains=member.id,
klettertreff__id__contains=self.id)
if attendees:
return True
return False
get_jugendleiter.short_description = _('Jugendleiter') get_jugendleiter.short_description = _('Jugendleiter')
class KlettertreffAttendee(models.Model): class KlettertreffAttendee(models.Model):
"""Connects members to Klettertreffs.""" """Connects members to Klettertreffs."""
member = models.ForeignKey(Member) member = models.ForeignKey(Member)

@ -0,0 +1,36 @@
{% extends "admin/base_site.html" %}
{% load i18n %}
{% load static %}
{% load overview_extras %}
{% block content %}
<table>
<tr>
<th>Datum</th>
{% for klettertreff in klettertreffs %}
<td>{{ klettertreff.date }}</td>
{% endfor %}
</tr>
<tr>
<th>Ort</th>
{% for klettertreff in klettertreffs %}
<td>{{ klettertreff.location }}</td>
{% endfor %}
</tr>
{% for member in members %}
<tr>
<th>{{ member.name }}
{% for klettertreff in klettertreffs %}
<td>
{% has_attendee_wrapper klettertreff member as test %}
{% if test %}
yes
{% else %}
no
{% endif %}
</td>
{% endfor %}
</tr>
{% endfor %}
</table>
{% endblock %}

@ -0,0 +1,7 @@
from django import template
register = template.Library()
@register.assignment_tag
def has_attendee_wrapper(klettertreff, member):
return klettertreff.has_attendee(member)
Loading…
Cancel
Save