1
0
mirror of https://gitlab.com/animath/si/plateforme-corres2math.git synced 2025-06-24 17:00:31 +02:00

Display popups to create and join team

This commit is contained in:
Yohann D'ANELLO
2020-09-22 20:41:42 +02:00
parent 016398dd8d
commit c7f74b68be
11 changed files with 399 additions and 195 deletions

View File

@ -0,0 +1,28 @@
from django import forms
from django.core.exceptions import ValidationError
from .models import Team
class TeamForm(forms.ModelForm):
class Meta:
model = Team
fields = ('name', 'trigram', 'grant_animath_access_videos',)
class JoinTeamForm(forms.ModelForm):
def clean_access_code(self):
access_code = self.cleaned_data["access_code"]
if not Team.objects.filter(access_code=access_code).exists():
raise ValidationError("No team was found with this access code.")
return access_code
def clean(self):
cleaned_data = super().clean()
if "access_code" in cleaned_data:
self.instance = Team.objects.get(access_code=cleaned_data["access_code"])
return cleaned_data
class Meta:
model = Team
fields = ('access_code',)

View File

@ -0,0 +1,13 @@
{% extends "base.html" %}
{% load crispy_forms_filters i18n %}
{% block content %}
<form method="post">
<div id="form-content">
{% csrf_token %}
{{ form|crispy }}
</div>
<button class="btn btn-success" type="submit">{% trans "Create" %}</button>
</form>
{% endblock content %}

View File

@ -0,0 +1,21 @@
{% load crispy_forms_filters i18n %}
<div id="createTeamModal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<form method="post" action="{% url "participation:create_team" %}">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{% trans "Create team" %}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="submit" class="btn btn-success">{% trans "Create" %}</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">{% trans "Close" %}</button>
</div>
</div>
</form>
</div>
</div>

View File

@ -0,0 +1,13 @@
{% extends "base.html" %}
{% load crispy_forms_filters i18n %}
{% block content %}
<form method="post">
<div id="form-content">
{% csrf_token %}
{{ form|crispy }}
</div>
<button class="btn btn-primary" type="submit">{% trans "Join" %}</button>
</form>
{% endblock content %}

View File

@ -0,0 +1,21 @@
{% load crispy_forms_filters i18n %}
<div id="joinTeamModal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<form method="post" action="{% url "participation:join_team" %}">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{% trans "Join team" %}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">{% trans "Join" %}</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">{% trans "Close" %}</button>
</div>
</div>
</form>
</div>
</div>

View File

@ -1 +1,11 @@
urlpatterns = []
from django.urls import path
from .views import CreateTeamView, JoinTeamView
app_name = "participation"
urlpatterns = [
path("create_team/", CreateTeamView.as_view(), name="create_team"),
path("join_team/", JoinTeamView.as_view(), name="join_team"),
]

View File

@ -1,3 +1,20 @@
from django.shortcuts import render
from django.contrib.auth.mixins import LoginRequiredMixin
from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, FormView
# Create your views here.
from participation.forms import TeamForm, JoinTeamForm
from participation.models import Team
class CreateTeamView(LoginRequiredMixin, CreateView):
model = Team
form_class = TeamForm
extra_context = dict(title=_("Create team"))
template_name = "participation/create_team.html"
class JoinTeamView(LoginRequiredMixin, FormView):
model = Team
form_class = JoinTeamForm
extra_context = dict(title=_("Join team"))
template_name = "participation/create_team.html"