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.db.models import TextField
from django.forms import Textarea
from django.shortcuts import render
from .models import (Member, Group, MemberList, MemberOnList, Klettertreff,
KlettertreffAttendee)
@ -145,6 +146,18 @@ class KlettertreffAdmin(admin.ModelAdmin):
inlines = [KlettertreffAttendeeInline]
list_display = ['__str__', 'date', 'get_jugendleiter']
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(Group, GroupAdmin)

@ -120,8 +120,18 @@ class Klettertreff(models.Model):
jl_string = jl_string[:-2]
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')
class KlettertreffAttendee(models.Model):
"""Connects members to Klettertreffs."""
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