Create view
This commit is contained in:
		@@ -4,7 +4,7 @@ from django.contrib import admin
 | 
			
		||||
 | 
			
		||||
from django.utils.translation import gettext_lazy as _
 | 
			
		||||
 | 
			
		||||
from tbde.models import Ticket, Reward
 | 
			
		||||
from .models import Ticket, Reward
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@admin.register(Ticket)
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1,9 @@
 | 
			
		||||
# Copyright (C) 2020 by BDE ENS Paris-Saclay
 | 
			
		||||
 | 
			
		||||
from django.urls import path
 | 
			
		||||
 | 
			
		||||
from .views import TombolaView
 | 
			
		||||
 | 
			
		||||
urlpatterns = [
 | 
			
		||||
    path('', TombolaView.as_view()),
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										7
									
								
								apps/tbde/views.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								apps/tbde/views.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
# Copyright (C) 2020 by BDE ENS Paris-Saclay
 | 
			
		||||
 | 
			
		||||
from django.views.generic import TemplateView
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TombolaView(TemplateView):
 | 
			
		||||
    template_name = "tombola.html"
 | 
			
		||||
							
								
								
									
										127
									
								
								templates/base.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								templates/base.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,127 @@
 | 
			
		||||
{% load static i18n %}
 | 
			
		||||
{% comment %}
 | 
			
		||||
SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
{% endcomment %}
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en" class="position-relative h-100">
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="utf-8">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 | 
			
		||||
    <title>
 | 
			
		||||
        {% block title %}{{ title }}{% endblock title %} - {{ request.site.name }}
 | 
			
		||||
    </title>
 | 
			
		||||
    <meta name="description" content="{% trans "The ENS Paris-Saclay BDE note." %}">
 | 
			
		||||
 | 
			
		||||
    {# Favicon #}
 | 
			
		||||
    <link rel="apple-touch-icon" sizes="180x180" href="{% static "favicon/apple-touch-icon.png" %}">
 | 
			
		||||
    <link rel="icon" type="image/png" sizes="32x32" href="{% static "favicon/favicon-32x32.png" %}">
 | 
			
		||||
    <link rel="icon" type="image/png" sizes="16x16" href="{% static "favicon/favicon-16x16.png" %}">
 | 
			
		||||
    <link rel="manifest" href="{% static "favicon/site.webmanifest" %}">
 | 
			
		||||
    <link rel="mask-icon" href="{% static "favicon/safari-pinned-tab.svg" %}" color="#5bbad5">
 | 
			
		||||
    <link rel="shortcut icon" href="{% static "favicon/favicon.ico" %}">
 | 
			
		||||
    <meta name="msapplication-TileColor" content="#da532c">
 | 
			
		||||
    <meta name="msapplication-config" content="{% static "favicon/browserconfig.xml" %}">
 | 
			
		||||
    <meta name="theme-color" content="#ffffff">
 | 
			
		||||
    {% if no_cache %}
 | 
			
		||||
        <meta name="turbolinks-cache-control" content="no-cache">
 | 
			
		||||
    {% endif %}
 | 
			
		||||
 | 
			
		||||
    {# Bootstrap CSS #}
 | 
			
		||||
    <link rel="stylesheet"
 | 
			
		||||
          href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
 | 
			
		||||
          integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
 | 
			
		||||
          crossorigin="anonymous">
 | 
			
		||||
    <link rel="stylesheet"
 | 
			
		||||
          href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
 | 
			
		||||
 | 
			
		||||
    {# JQuery, Bootstrap and Turbolinks JavaScript #}
 | 
			
		||||
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"
 | 
			
		||||
            integrity="sha384-vk5WoKIaW/vJyUAd9n/wmopsmNhiy+L2Z+SBxGYnUkunIxVxAv/UtMOhba/xskxh"
 | 
			
		||||
            crossorigin="anonymous"></script>
 | 
			
		||||
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
 | 
			
		||||
            integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
 | 
			
		||||
            crossorigin="anonymous"></script>
 | 
			
		||||
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
 | 
			
		||||
            integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
 | 
			
		||||
            crossorigin="anonymous"></script>
 | 
			
		||||
    <script src="https://cdnjs.cloudflare.com/ajax/libs/turbolinks/5.2.0/turbolinks.js"
 | 
			
		||||
            crossorigin="anonymous"></script>
 | 
			
		||||
 | 
			
		||||
    {# Si un formulaire requiert des données supplémentaires (notamment JS), les données sont chargées #}
 | 
			
		||||
    {% if form.media %}
 | 
			
		||||
        {{ form.media }}
 | 
			
		||||
    {% endif %}
 | 
			
		||||
 | 
			
		||||
    {% block extracss %}{% endblock %}
 | 
			
		||||
</head>
 | 
			
		||||
<body class="d-flex w-100 h-100 flex-column">
 | 
			
		||||
<main class="mb-auto">
 | 
			
		||||
    <nav class="navbar navbar-expand-md navbar-light bg-light fixed-navbar shadow-sm">
 | 
			
		||||
        <a class="navbar-brand" href="/">{{ request.site.name }}</a>
 | 
			
		||||
        <button class="navbar-toggler" type="button" data-toggle="collapse"
 | 
			
		||||
                data-target="#navbarNavDropdown"
 | 
			
		||||
                aria-controls="navbarNavDropdown" aria-expanded="false"
 | 
			
		||||
                aria-label="Toggle navigation">
 | 
			
		||||
            <span class="navbar-toggler-icon"></span>
 | 
			
		||||
        </button>
 | 
			
		||||
        <div class="collapse navbar-collapse" id="navbarNavDropdown">
 | 
			
		||||
            <ul class="navbar-nav ml-auto">
 | 
			
		||||
                {% if not user.is_authenticated %}
 | 
			
		||||
                    <li class="nav-item active">
 | 
			
		||||
                        <a class="nav-link" href="{% url 'login' %}">
 | 
			
		||||
                            <i class="fa fa-sign-in"></i> Se connecter
 | 
			
		||||
                        </a>
 | 
			
		||||
                    </li>
 | 
			
		||||
                {% endif %}
 | 
			
		||||
            </ul>
 | 
			
		||||
        </div>
 | 
			
		||||
    </nav>
 | 
			
		||||
    <div class="container-fluid my-3" style="max-width: 1600px;">
 | 
			
		||||
        {% block contenttitle %}<h1>{{ title }}</h1>{% endblock %}
 | 
			
		||||
        {% block content %}
 | 
			
		||||
            <p>Default content...</p>
 | 
			
		||||
        {% endblock content %}
 | 
			
		||||
    </div>
 | 
			
		||||
</main>
 | 
			
		||||
<footer class="bg-light mt-auto py-2">
 | 
			
		||||
    <div class="container-fluid">
 | 
			
		||||
        <div class="row">
 | 
			
		||||
            <div class="col-sm">
 | 
			
		||||
                <form action="{% url 'set_language' %}" method="post"
 | 
			
		||||
                      class="form-inline">
 | 
			
		||||
                    <span class="text-muted mr-1">
 | 
			
		||||
                        NoteKfet2020 —
 | 
			
		||||
                        <a href="mailto:tresorie.bde@lists.crans.org"
 | 
			
		||||
                           class="text-muted">Nous contacter</a> —
 | 
			
		||||
                    </span>
 | 
			
		||||
                    {% csrf_token %}
 | 
			
		||||
                    <select title="language" name="language"
 | 
			
		||||
                            class="custom-select custom-select-sm"
 | 
			
		||||
                            onchange="this.form.submit()">
 | 
			
		||||
                        {% get_current_language as LANGUAGE_CODE %}
 | 
			
		||||
                        {% get_available_languages as LANGUAGES %}
 | 
			
		||||
                        {% get_language_info_list for LANGUAGES as languages %}
 | 
			
		||||
                        {% for language in languages %}
 | 
			
		||||
                            <option value="{{ language.code }}"
 | 
			
		||||
                                    {% if language.code == LANGUAGE_CODE %}
 | 
			
		||||
                                    selected{% endif %}>
 | 
			
		||||
                                {{ language.name_local }} ({{ language.code }})
 | 
			
		||||
                            </option>
 | 
			
		||||
                        {% endfor %}
 | 
			
		||||
                    </select>
 | 
			
		||||
                    <noscript>
 | 
			
		||||
                        <input type="submit">
 | 
			
		||||
                    </noscript>
 | 
			
		||||
                </form>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-sm text-right">
 | 
			
		||||
                <a href="#" class="text-muted">Retour en haut</a>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</footer>
 | 
			
		||||
 | 
			
		||||
{% block extrajavascript %}
 | 
			
		||||
{% endblock extrajavascript %}
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										10
									
								
								templates/registration/logged_out.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								templates/registration/logged_out.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
{% comment %}
 | 
			
		||||
SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
{% endcomment %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
    <p>{% trans "Thanks for spending some quality time with the Web site today." %}</p>
 | 
			
		||||
    <p><a href="{% url 'index' %}">{% trans 'Log in again' %}</a></p>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
							
								
								
									
										25
									
								
								templates/registration/login.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								templates/registration/login.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
{% comment %}
 | 
			
		||||
SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
{% endcomment %}
 | 
			
		||||
{% load i18n crispy_forms_tags %}
 | 
			
		||||
 | 
			
		||||
{% block title %}{% trans "Log in" %}{% endblock %}
 | 
			
		||||
{% block contenttitle %}<h1>{% trans "Log in" %}</h1>{% endblock %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
    {% if user.is_authenticated %}
 | 
			
		||||
        <p class="errornote">
 | 
			
		||||
            {% blocktrans trimmed %}
 | 
			
		||||
                You are authenticated as {{ username }}, but are not authorized to
 | 
			
		||||
                access this page. Would you like to login to a different account?
 | 
			
		||||
            {% endblocktrans %}
 | 
			
		||||
        </p>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
 | 
			
		||||
    <form action="{{ app_path }}" method="post" id="login-form">{% csrf_token %}
 | 
			
		||||
        {{ form | crispy }}
 | 
			
		||||
        <input type="submit" value="{% trans 'Log in' %}" class="btn btn-primary">
 | 
			
		||||
        <a href="{% url 'password_reset' %}" class="badge badge-light">{% trans 'Forgotten your password or username?' %}</a>
 | 
			
		||||
    </form>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
							
								
								
									
										9
									
								
								templates/registration/password_change_done.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								templates/registration/password_change_done.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
{% comment %}
 | 
			
		||||
SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
{% endcomment %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
    <p>{% trans 'Your password was changed.' %}</p>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
							
								
								
									
										13
									
								
								templates/registration/password_change_form.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								templates/registration/password_change_form.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
{% comment %}
 | 
			
		||||
SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
{% endcomment %}
 | 
			
		||||
{% load i18n crispy_forms_tags %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
    <form method="post">{% csrf_token %}
 | 
			
		||||
        <p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p>
 | 
			
		||||
        {{ form | crispy }}
 | 
			
		||||
        <input class="btn btn-primary" type="submit" value="{% trans 'Change my password' %}">
 | 
			
		||||
    </form>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
							
								
								
									
										12
									
								
								templates/registration/password_reset_complete.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								templates/registration/password_reset_complete.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
{% comment %}
 | 
			
		||||
SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
{% endcomment %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
    <p>{% trans "Your password has been set.  You may go ahead and log in now." %}</p>
 | 
			
		||||
    <p>
 | 
			
		||||
        <a href="{{ login_url }}" class="btn btn-success">{% trans 'Log in' %}</a>
 | 
			
		||||
    </p>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
							
								
								
									
										17
									
								
								templates/registration/password_reset_confirm.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								templates/registration/password_reset_confirm.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
{% comment %}
 | 
			
		||||
SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
{% endcomment %}
 | 
			
		||||
{% load i18n crispy_forms_tags %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
    {% if validlink %}
 | 
			
		||||
        <p>{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}</p>
 | 
			
		||||
        <form method="post">{% csrf_token %}
 | 
			
		||||
            {{ form | crispy }}
 | 
			
		||||
            <input class="btn btn-primary" type="submit" value="{% trans 'Change my password' %}">
 | 
			
		||||
        </form>
 | 
			
		||||
    {% else %}
 | 
			
		||||
        <p>{% trans "The password reset link was invalid, possibly because it has already been used.  Please request a new password reset." %}</p>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
{% endblock %}
 | 
			
		||||
							
								
								
									
										10
									
								
								templates/registration/password_reset_done.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								templates/registration/password_reset_done.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
{% comment %}
 | 
			
		||||
SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
{% endcomment %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
    <p>{% trans "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." %}</p>
 | 
			
		||||
    <p>{% trans "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." %}</p>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
							
								
								
									
										13
									
								
								templates/registration/password_reset_form.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								templates/registration/password_reset_form.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
{% comment %}
 | 
			
		||||
SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
{% endcomment %}
 | 
			
		||||
{% load i18n crispy_forms_tags %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
    <p>{% trans "Forgotten your password? Enter your email address below, and we'll email instructions for setting a new one." %}</p>
 | 
			
		||||
    <form method="post">{% csrf_token %}
 | 
			
		||||
        {{ form | crispy }}
 | 
			
		||||
        <input class="btn btn-primary" type="submit" value="{% trans 'Reset my password' %}">
 | 
			
		||||
    </form>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
							
								
								
									
										11
									
								
								templates/tombola.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								templates/tombola.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
{% extends "base.html" %}
 | 
			
		||||
 | 
			
		||||
{% load i18n static %}
 | 
			
		||||
 | 
			
		||||
{# Remove page title #}
 | 
			
		||||
{% block contenttitle %}{% endblock %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
 | 
			
		||||
{% endblock %}
 | 
			
		||||
 | 
			
		||||
@@ -15,9 +15,13 @@ Including another URLconf
 | 
			
		||||
    1. Import the include() function: from django.urls import include, path
 | 
			
		||||
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
from django.contrib import admin
 | 
			
		||||
from django.urls import path
 | 
			
		||||
from django.urls import path, include
 | 
			
		||||
 | 
			
		||||
urlpatterns = [
 | 
			
		||||
    path('accounts/', include('django.contrib.auth.urls')),
 | 
			
		||||
    path('i18n/', include('django.conf.urls.i18n')),
 | 
			
		||||
    path('admin/', admin.site.urls),
 | 
			
		||||
    path('', include('tbde.urls')),
 | 
			
		||||
]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user