mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 01:12:08 +01:00 
			
		
		
		
	Detail view of club: member list and history
This commit is contained in:
		@@ -9,9 +9,15 @@ from django.views.generic import CreateView, ListView, DetailView
 | 
			
		||||
from django.http import HttpResponseRedirect
 | 
			
		||||
from django.contrib.auth.forms import UserCreationForm
 | 
			
		||||
from django.urls import reverse_lazy
 | 
			
		||||
from django.db.models import Q
 | 
			
		||||
 | 
			
		||||
from django_tables2.views import SingleTableView
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
from .models import Profile, Club, Membership
 | 
			
		||||
from .forms import ProfileForm, ClubForm,MembershipForm, MemberFormSet,FormSetHelper
 | 
			
		||||
from .tables import ClubTable
 | 
			
		||||
from note.models.transactions import Transaction
 | 
			
		||||
 | 
			
		||||
class UserCreateView(CreateView):
 | 
			
		||||
    """
 | 
			
		||||
@@ -63,7 +69,20 @@ class ClubListView(LoginRequiredMixin,SingleTableView):
 | 
			
		||||
 | 
			
		||||
class ClubDetailView(LoginRequiredMixin,DetailView):
 | 
			
		||||
    model = Club
 | 
			
		||||
    context_object_name="club"
 | 
			
		||||
 | 
			
		||||
    def get_context_data(self,**kwargs):
 | 
			
		||||
        context = super().get_context_data(**kwargs)
 | 
			
		||||
        club = context["club"]
 | 
			
		||||
        club_transactions =  \
 | 
			
		||||
            Transaction.objects.all().filter(Q(source=club.note) | Q(destination=club.note))
 | 
			
		||||
        context['history_list'] = club_transactions
 | 
			
		||||
        club_member = \
 | 
			
		||||
            Membership.objects.all().filter(club=club)
 | 
			
		||||
        #TODO: consider only valid Membership
 | 
			
		||||
        context['member_list'] = club_member
 | 
			
		||||
        return context
 | 
			
		||||
  
 | 
			
		||||
class ClubAddMemberView(LoginRequiredMixin,CreateView):
 | 
			
		||||
    model = Membership
 | 
			
		||||
    form_class = MembershipForm
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,61 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
{% load static %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
{% load render_table from django_tables2 %}
 | 
			
		||||
{% block content %}
 | 
			
		||||
<p><a class="btn btn-default" href="{% url 'member:club_list' %}">Clubs</a></p>
 | 
			
		||||
<h5>{{ object.name }}</h5>
 | 
			
		||||
<p><a class="btn btn-primary" href="{% url 'member:club_list' %}">Clubs</a></p>
 | 
			
		||||
<h3 class="text-center"> Club {{ object.name }}</h3>
 | 
			
		||||
<dl>
 | 
			
		||||
    <dt>{% trans 'Membership starts on' %}</dt>
 | 
			
		||||
    <dd>{{ club.membership_start }}</dd>
 | 
			
		||||
    <dt>{% trans 'Membership ends on' %}</dt>
 | 
			
		||||
    <dd>{{ club.membership_end }}</dd>
 | 
			
		||||
    <dt>{% trans 'Membership duration' %}</dt>
 | 
			
		||||
    <dd>{{ club.membership_duration }}</dd>
 | 
			
		||||
    <dt> Aliases </dt>
 | 
			
		||||
    <dd>{{ club.note.aliases_set.all }}</dd>
 | 
			
		||||
    <dt>{% trans 'balance' %}</dt>
 | 
			
		||||
    <dd>{{ club.note.balance }}</dd>
 | 
			
		||||
 | 
			
		||||
<a class="btn btn-default" href="{% url 'member:club_add_member' pk=object.pk %}"> Ajouter des membres </a>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
</dl>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<div class="btn-group" role="group">
 | 
			
		||||
    <a class="btn btn-primary" href="{% url 'member:club_add_member' pk=object.pk %}"> Ajouter des membres </a>
 | 
			
		||||
    <a class="btn btn-primary" href="{% url 'member:club_add_member' pk=object.pk %}"> Modifier les informations </a>
 | 
			
		||||
    <a class="btn btn-primary" href="{% url 'member:club_add_member' pk=object.pk %}"> Ajouter des roles </a>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class="accordion" id="accordionExample">
 | 
			
		||||
  <div class="card">
 | 
			
		||||
    <div class="card-header" id="headingOne">
 | 
			
		||||
      <h5 class="mb-0">
 | 
			
		||||
        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
 | 
			
		||||
            <i class="fa fa-users"></i> Membres du club
 | 
			
		||||
        </button>
 | 
			
		||||
      </h5>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
 | 
			
		||||
      <div class="card-body">
 | 
			
		||||
 | 
			
		||||
          {% render_table member_list %}
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="card">
 | 
			
		||||
    <div class="card-header" id="headingTwo">
 | 
			
		||||
      <h5 class="mb-0">
 | 
			
		||||
        <button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
 | 
			
		||||
            <i class="fa fa-euro"></i> Historique des transactions
 | 
			
		||||
        </button>
 | 
			
		||||
      </h5>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
 | 
			
		||||
      <div class="card-body">
 | 
			
		||||
          {% render_table history_list %}
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
    {% endblock %}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user