mirror of
https://gitlab.crans.org/bde/nk20
synced 2024-11-26 18:37:12 +00:00
List pre-registrations (TODO: filter)
This commit is contained in:
parent
6b8e9d45fd
commit
bdb0f677e5
@ -154,6 +154,8 @@ class WEIRegistration(models.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
health_issues = models.TextField(
|
health_issues = models.TextField(
|
||||||
|
blank=True,
|
||||||
|
default="",
|
||||||
verbose_name=_("health issues"),
|
verbose_name=_("health issues"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -3,13 +3,15 @@
|
|||||||
|
|
||||||
import django_tables2 as tables
|
import django_tables2 as tables
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
from django_tables2 import A
|
||||||
|
|
||||||
from .models import WEIClub
|
from .models import WEIClub, WEIRegistration
|
||||||
|
|
||||||
|
|
||||||
class WEITable(tables.Table):
|
class WEITable(tables.Table):
|
||||||
"""
|
"""
|
||||||
List all clubs.
|
List all WEI.
|
||||||
"""
|
"""
|
||||||
class Meta:
|
class Meta:
|
||||||
attrs = {
|
attrs = {
|
||||||
@ -23,3 +25,61 @@ class WEITable(tables.Table):
|
|||||||
'id': lambda record: "row-" + str(record.pk),
|
'id': lambda record: "row-" + str(record.pk),
|
||||||
'data-href': lambda record: reverse_lazy('wei:wei_detail', args=(record.pk,))
|
'data-href': lambda record: reverse_lazy('wei:wei_detail', args=(record.pk,))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class WEIRegistrationTable(tables.Table):
|
||||||
|
"""
|
||||||
|
List all WEI registrations.
|
||||||
|
"""
|
||||||
|
user = tables.LinkColumn(
|
||||||
|
'member:user_detail',
|
||||||
|
args=[A('user.pk')],
|
||||||
|
)
|
||||||
|
|
||||||
|
edit = tables.LinkColumn(
|
||||||
|
'wei:wei_detail',
|
||||||
|
args=[A('pk')],
|
||||||
|
verbose_name=_("Edit"),
|
||||||
|
text=_("Edit"),
|
||||||
|
attrs={
|
||||||
|
'a': {
|
||||||
|
'class': 'btn btn-warning'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
validate = tables.LinkColumn(
|
||||||
|
'wei:wei_detail',
|
||||||
|
args=[A('pk')],
|
||||||
|
verbose_name=_("Validate"),
|
||||||
|
text=_("Validate"),
|
||||||
|
attrs={
|
||||||
|
'a': {
|
||||||
|
'class': 'btn btn-success'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
delete = tables.LinkColumn(
|
||||||
|
'wei:wei_detail',
|
||||||
|
args=[A('pk')],
|
||||||
|
verbose_name=_("delete"),
|
||||||
|
text=_("Delete"),
|
||||||
|
attrs={
|
||||||
|
'a': {
|
||||||
|
'class': 'btn btn-danger'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
attrs = {
|
||||||
|
'class': 'table table-condensed table-striped table-hover'
|
||||||
|
}
|
||||||
|
model = WEIRegistration
|
||||||
|
template_name = 'django_tables2/bootstrap4.html'
|
||||||
|
fields = ('user',)
|
||||||
|
row_attrs = {
|
||||||
|
'class': 'table-row',
|
||||||
|
'id': lambda record: "row-" + str(record.pk),
|
||||||
|
'data-href': lambda record: record.pk
|
||||||
|
}
|
||||||
|
@ -16,9 +16,9 @@ from note.tables import HistoryTable
|
|||||||
from permission.backends import PermissionBackend
|
from permission.backends import PermissionBackend
|
||||||
from permission.views import ProtectQuerysetMixin
|
from permission.views import ProtectQuerysetMixin
|
||||||
|
|
||||||
from .models import WEIClub, WEIRegistration
|
from .models import WEIClub, WEIRegistration, WEIMembership
|
||||||
from .forms import WEIForm, WEIRegistrationForm
|
from .forms import WEIForm, WEIRegistrationForm
|
||||||
from .tables import WEITable
|
from .tables import WEITable, WEIRegistrationTable
|
||||||
|
|
||||||
|
|
||||||
class WEIListView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView):
|
class WEIListView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView):
|
||||||
@ -67,15 +67,30 @@ class WEIDetailView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
|
|||||||
history_table = HistoryTable(club_transactions, prefix="history-")
|
history_table = HistoryTable(club_transactions, prefix="history-")
|
||||||
history_table.paginate(per_page=20, page=self.request.GET.get('history-page', 1))
|
history_table.paginate(per_page=20, page=self.request.GET.get('history-page', 1))
|
||||||
context['history_list'] = history_table
|
context['history_list'] = history_table
|
||||||
club_member = Membership.objects.filter(
|
|
||||||
|
club_member = WEIMembership.objects.filter(
|
||||||
club=club,
|
club=club,
|
||||||
date_end__gte=datetime.today(),
|
date_end__gte=datetime.today(),
|
||||||
).filter(PermissionBackend.filter_queryset(self.request.user, Membership, "view"))
|
).filter(PermissionBackend.filter_queryset(self.request.user, WEIMembership, "view"))
|
||||||
|
|
||||||
membership_table = MembershipTable(data=club_member, prefix="membership-")
|
membership_table = MembershipTable(data=club_member, prefix="membership-")
|
||||||
membership_table.paginate(per_page=20, page=self.request.GET.get('membership-page', 1))
|
membership_table.paginate(per_page=20, page=self.request.GET.get('membership-page', 1))
|
||||||
context['member_list'] = membership_table
|
context['member_list'] = membership_table
|
||||||
|
|
||||||
|
WEIRegistrationTable.base_columns["delete"].visible = False
|
||||||
|
WEIRegistrationTable.base_columns["validate"].visible = False
|
||||||
|
all_registrations = WEIRegistration.objects.filter(
|
||||||
|
PermissionBackend.filter_queryset(self.request.user, WEIRegistration, "view"))
|
||||||
|
all_registrations_table = WEIRegistrationTable(data=all_registrations, prefix="all-registration-")
|
||||||
|
all_registrations_table.paginate(per_page=20, page=self.request.GET.get('membership-page', 1))
|
||||||
|
context['all_registrations'] = all_registrations_table
|
||||||
|
|
||||||
|
WEIRegistrationTable.base_columns["delete"].visible = True
|
||||||
|
WEIRegistrationTable.base_columns["validate"].visible = True
|
||||||
|
pre_registrations = all_registrations.filter(membership=None)
|
||||||
|
pre_registrations_table = WEIRegistrationTable(data=pre_registrations, prefix="pre-registration-")
|
||||||
|
pre_registrations_table.paginate(per_page=20, page=self.request.GET.get('membership-page', 1))
|
||||||
|
context['pre_registrations'] = pre_registrations_table
|
||||||
|
|
||||||
# Check if the user has the right to create a membership, to display the button.
|
# Check if the user has the right to create a membership, to display the button.
|
||||||
empty_membership = Membership(
|
empty_membership = Membership(
|
||||||
club=club,
|
club=club,
|
||||||
@ -115,9 +130,9 @@ class WEIRegisterView(ProtectQuerysetMixin, LoginRequiredMixin, CreateView):
|
|||||||
return form
|
return form
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
ret = super().form_valid(form)
|
form.instance.wei = WEIClub.objects.get(pk=self.kwargs["wei_pk"])
|
||||||
return ret
|
return super().form_valid(form)
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
self.object.refresh_from_db()
|
self.object.refresh_from_db()
|
||||||
return reverse_lazy("wei:wei_detail", kwargs={"pk": self.object.pk})
|
return reverse_lazy("wei:wei_detail", kwargs={"pk": self.object.wei.pk})
|
||||||
|
@ -57,6 +57,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
{% if member_list.data %}
|
{% if member_list.data %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header position-relative" id="clubListHeading">
|
<div class="card-header position-relative" id="clubListHeading">
|
||||||
@ -81,4 +83,34 @@
|
|||||||
{% render_table history_list %}
|
{% render_table history_list %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if pre_registrations.data %}
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header position-relative" id="historyListHeading">
|
||||||
|
<a class="btn btn-link stretched-link font-weight-bold">
|
||||||
|
<i class="fa fa-user-plus"></i> {% trans "Unvalidated registrations" %}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="history_list">
|
||||||
|
{% render_table pre_registrations %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if all_registrations.data or True %}
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header position-relative" id="historyListHeading">
|
||||||
|
<a class="btn btn-link stretched-link font-weight-bold">
|
||||||
|
<i class="fa fa-user-plus"></i> {% trans "All registrations" %}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="history_list">
|
||||||
|
{% render_table all_registrations %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
Loading…
Reference in New Issue
Block a user