-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4bcc680
commit a22b855
Showing
6 changed files
with
108 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
from django.dispatch import receiver | ||
|
||
from ephios.core.signals import register_shift_structures | ||
from ephios.plugins.complexsignup.signup import ComplexShiftStructure | ||
|
||
|
||
@receiver( | ||
register_shift_structures, | ||
dispatch_uid="ephios.plugins.complexsignup.signals.register_complex_shift_structures", | ||
) | ||
def register_complex_shift_structures(sender, **kwargs): | ||
return [ | ||
ComplexShiftStructure, | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
from django import forms | ||
from django.utils.translation import gettext_lazy as _ | ||
from django_select2.forms import ModelSelect2Widget | ||
|
||
from ephios.core.signup.forms import SignupConfigurationForm | ||
from ephios.core.signup.structure.base import BaseShiftStructure | ||
from ephios.plugins.baseshiftstructures.structure.common import MinimumAgeMixin | ||
from ephios.plugins.complexsignup.models import BuildingBlock | ||
|
||
|
||
class ComplexConfigurationForm(SignupConfigurationForm): | ||
building_block = forms.ModelChoiceField( | ||
widget=ModelSelect2Widget( | ||
model=BuildingBlock, | ||
search_fields=["name"], | ||
), | ||
queryset=BuildingBlock.objects.all(), | ||
) | ||
|
||
template_name = "complexsignup/configuration_form.html" | ||
|
||
def __init__(self, *args, **kwargs): | ||
super().__init__(*args, **kwargs) | ||
|
||
|
||
class ComplexShiftStructure( | ||
MinimumAgeMixin, | ||
BaseShiftStructure, | ||
): | ||
slug = "complex" | ||
verbose_name = _("Preconfigured Structure") | ||
description = _("Use preconfigured elements to build a custom structure.") | ||
shift_state_template_name = "complexsignup/shift_state.html" | ||
configuration_form_class = ComplexConfigurationForm | ||
|
||
def get_shift_state_context_data(self, request, **kwargs): | ||
""" | ||
Additionally to the context of the event detail view, provide context for rendering `shift_state_template_name`. | ||
""" | ||
kwargs = super().get_shift_state_context_data(request, **kwargs) | ||
kwargs["main_block"] = BuildingBlock.objects.filter( | ||
id=self.configuration.building_block | ||
).first() | ||
return kwargs |
12 changes: 12 additions & 0 deletions
12
ephios/plugins/complexsignup/templates/complexsignup/configuration_form.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{% load i18n %} | ||
{% load crispy_forms_filters %} | ||
|
||
<p> | ||
<a href="{% url "complexsignup:blocks_editor" %}" | ||
class="btn btn-sm btn-primary" | ||
target="_blank"> | ||
{% translate "Edit blocks" %} | ||
</a> | ||
</p> | ||
|
||
{{ form|crispy }} |
18 changes: 18 additions & 0 deletions
18
ephios/plugins/complexsignup/templates/complexsignup/shift_state.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{% load i18n %} | ||
|
||
<div class="mb-3"> | ||
{% include "complexsignup/shift_state_block.html" with current=main_block %} | ||
</div> | ||
|
||
{% with stats=shift.get_signup_stats %} | ||
<span class="pe-1"> | ||
<strong>{{ stats.confirmed_count }}{% if stats.max_count %}/{{ stats.max_count }}{% endif %}</strong> | ||
{% translate "Total" context "participation count" %} | ||
</span> | ||
{% endwith %} | ||
|
||
{% if disposition_url %} | ||
<div class="mt-1"> | ||
<a href="{{ disposition_url }}" class="btn btn-sm btn-info">{% translate "Disposition" %}</a> | ||
</div> | ||
{% endif %} |
16 changes: 16 additions & 0 deletions
16
ephios/plugins/complexsignup/templates/complexsignup/shift_state_block.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<div class="card mb-3 text-bg-light"> | ||
<div class="card-body"> | ||
<h5 class="card-title">{{ current }}</h5> | ||
{% if current.block_type == "composite" %} | ||
{% for sub_block in current.sub_blocks.all %} | ||
{% include "complexsignup/shift_state_block.html" with current=sub_block %} | ||
{% endfor %} | ||
{% else %} | ||
<ul class="mb-0"> | ||
{% for pos in current.positions.all %} | ||
<li>{{ pos }}</li> | ||
{% endfor %} | ||
</ul> | ||
{% endif %} | ||
</div> | ||
</div> |