parent
dcc3672c45
commit
a1314c683a
|
|
@ -158,6 +158,6 @@ class CarteCashlessAdmin(admin.ModelAdmin):
|
|||
get_origin.short_description = 'Origine'
|
||||
|
||||
search_fields = ('tag_id', 'uuid', 'number')
|
||||
list_filter = ('tag_id', 'uuid', 'number')
|
||||
list_filter = ('tag_id', 'uuid', 'number', 'detail__origine')
|
||||
|
||||
public_admin_site.register(CarteCashless, CarteCashlessAdmin)
|
||||
|
|
|
|||
|
|
@ -137,6 +137,7 @@ class ReservationViewset(viewsets.ViewSet):
|
|||
permission_classes = [TenantAdminPermission]
|
||||
return [permission() for permission in permission_classes]
|
||||
|
||||
# class Adhesion(viewsets.ViewSet):
|
||||
|
||||
class TicketPdf(WeasyTemplateView):
|
||||
permission_classes = [AllowAny]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
# Generated by Django 2.2 on 2021-11-11 12:27
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('Customers', '0001_initial'),
|
||||
('AuthBillet', '0003_auto_20211022_1445'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='tibilletuser',
|
||||
name='accept_newsletter',
|
||||
field=models.BooleanField(default=True, verbose_name="J'accepte de recevoir la newsletter"),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tibilletuser',
|
||||
name='birth_date',
|
||||
field=models.DateField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tibilletuser',
|
||||
name='last_see',
|
||||
field=models.DateTimeField(auto_now=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tibilletuser',
|
||||
name='postal_code',
|
||||
field=models.IntegerField(blank=True, null=True),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Membership',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('date_added', models.DateTimeField(auto_now_add=True)),
|
||||
('first_contribution', models.DateField(blank=True, null=True)),
|
||||
('last_contribution', models.DateField(blank=True, null=True)),
|
||||
('tenant', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='Customers.Client')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='membership', to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
|
@ -55,7 +55,6 @@ class TibilletManager(BaseUserManager):
|
|||
staff_group = Group.objects.get_or_create(name="staff")[0]
|
||||
user.groups.add(staff_group)
|
||||
|
||||
|
||||
class TibilletUser(AbstractUser):
|
||||
|
||||
#TODO regarder du coté du dashboard de jet, ça plante avec uuid !
|
||||
|
|
@ -70,6 +69,13 @@ class TibilletUser(AbstractUser):
|
|||
username = models.CharField(max_length=200, unique=True)
|
||||
phone = models.CharField(max_length=20, null=True, blank=True)
|
||||
|
||||
last_see = models.DateTimeField(auto_now=True)
|
||||
accept_newsletter = models.BooleanField(
|
||||
default=True, verbose_name=_("J'accepte de recevoir la newsletter"))
|
||||
postal_code = models.IntegerField(null=True, blank=True)
|
||||
birth_date = models.DateField(null=True, blank=True)
|
||||
|
||||
|
||||
TYPE_TERM, TYPE_HUM, TYPE_ANDR = 'TE', 'HU', 'AN'
|
||||
ESPECE_CHOICES = (
|
||||
(TYPE_TERM, 'Terminal'),
|
||||
|
|
@ -206,6 +212,19 @@ class HumanUser(TibilletUser):
|
|||
super().save(*args, **kwargs)
|
||||
|
||||
|
||||
|
||||
|
||||
class Membership(models.Model):
|
||||
user = models.ForeignKey(TibilletUser, on_delete=models.PROTECT, related_name='membership')
|
||||
tenant = models.ForeignKey(Client, on_delete=models.PROTECT)
|
||||
|
||||
date_added = models.DateTimeField(auto_now_add=True)
|
||||
first_contribution = models.DateField(null=True, blank=True)
|
||||
last_contribution = models.DateField(null=True, blank=True)
|
||||
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
class SuperHumanUserManager(TibilletManager):
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
# Generated by Django 2.2 on 2021-11-11 06:17
|
||||
|
||||
from django.db import migrations
|
||||
import stdimage.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('BaseBillet', '0018_auto_20211111_1003'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='configuration',
|
||||
name='logo',
|
||||
field=stdimage.models.StdImageField(blank=True, null=True, upload_to='images/', verbose_name='Background'),
|
||||
),
|
||||
]
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
# Generated by Django 2.2 on 2021-11-11 08:19
|
||||
|
||||
from django.db import migrations
|
||||
import stdimage.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('BaseBillet', '0019_configuration_logo'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='configuration',
|
||||
name='logo',
|
||||
field=stdimage.models.StdImageField(blank=True, null=True, upload_to='images/', verbose_name='Logo'),
|
||||
),
|
||||
]
|
||||
|
|
@ -615,7 +615,7 @@ h4 {
|
|||
/* FORM */
|
||||
.search {
|
||||
display: none;
|
||||
position: absolute;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
background-color: #000000e0;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<title>TiBillet</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
|
|
@ -13,6 +14,10 @@
|
|||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css">
|
||||
<link rel="stylesheet" href="{% static 'arnaud_mvc/css/creative.css' %}">
|
||||
{# <link rel="stylesheet" href="{% static 'abubaker_saeed_modal/modal.css' %}">#}
|
||||
{# <link rel="stylesheet" href="{% static 'html5up-dimension/assets/css/main.css' %}"/>#}
|
||||
{# <link rel="stylesheet" href="{% static 'html5up-dimension/assets/css/main.css' %}"/>#}
|
||||
|
||||
|
||||
</head>
|
||||
{% endblock header %}
|
||||
|
|
@ -38,14 +43,28 @@
|
|||
<ul id="menutb" class="menutb">
|
||||
|
||||
<li class="m">
|
||||
<a href="/"><img src="{% static 'arnaud_mvc/img/menu/home.svg' %}"
|
||||
alt="logo billeterie Ti Billet" class="menutibillet m1"></a></li>
|
||||
<a href="#">
|
||||
<img src="{% static 'arnaud_mvc/img/menu/home.svg' %}"
|
||||
alt="logo billeterie Ti Billet" class="menutibillet m1">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{# <li class="m"><a href="#Apropos"><img src="{% static 'arnaud_mvc/img/menu/like.svg' %}"#}
|
||||
{# alt="logo billeterie Ti Billet" class="menutibillet m2"></a></li>#}
|
||||
<li class="m"><a href="#calendar"><img src="{% static 'arnaud_mvc/img/menu/calendrier.svg' %}"
|
||||
alt="logo billeterie Ti Billet" class="menutibillet m3"></a></li>
|
||||
{# <li class="m"><a href="#Contact"><img src="{% static 'arnaud_mvc/img/menu/search.svg' %}"#}
|
||||
{# alt="logo billeterie Ti Billet" class="menutibillet m4"></a></li>#}
|
||||
|
||||
<li class="m">
|
||||
<a href="#calendar">
|
||||
<img src="{% static 'arnaud_mvc/img/menu/calendrier.svg' %}"
|
||||
alt="logo billeterie Ti Billet" class="menutibillet m3">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="m">
|
||||
<a href="#search" title="search" onclick="asideswipe.call(this);">
|
||||
<img src="{% static 'arnaud_mvc/img/menu/search.svg' %}"
|
||||
alt="logo billeterie Ti Billet" class="menutibillet m4">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<!-- onClick="asideswipe()" -->
|
||||
</ul>
|
||||
|
|
@ -56,9 +75,11 @@
|
|||
<!-- END FILTER MENU -->
|
||||
|
||||
|
||||
|
||||
{% endblock nav %}
|
||||
|
||||
<body>
|
||||
{% include 'arnaud_mvc/modals.html' %}
|
||||
|
||||
{% block content %}
|
||||
{% endblock content %}
|
||||
|
|
@ -69,6 +90,24 @@
|
|||
{% endblock footer %}
|
||||
</footer>
|
||||
|
||||
<!-- AFFICHER CACHER DIV SEARCHrecherche -->
|
||||
<script type="text/javascript">
|
||||
function asideswipe() {
|
||||
console.log('asideswipe : ', this.title);
|
||||
|
||||
var div = document.getElementById(this.title),
|
||||
display = getComputedStyle(div, null).display;
|
||||
|
||||
console.log(display)
|
||||
|
||||
if (display == "flex") {
|
||||
div.style.display = "none";
|
||||
} else {
|
||||
div.style.display = "flex";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.8.0/gsap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.8.0/CSSRulePlugin.min.js"></script>
|
||||
<script src="{% static 'arnaud_mvc/tibillet.js' %}"></script>
|
||||
|
|
|
|||
|
|
@ -3,18 +3,18 @@
|
|||
<!-- CARD PROGRAMME -->
|
||||
{% for block_calendrier in events|range_by:5 %}
|
||||
<div id="calendar" class="card card-meta card-programme">
|
||||
{# <h2 class="title-programme">{{ configuration.organisation.upper }} </h2>#}
|
||||
{# <h2 class="title-programme">{{ configuration.organisation.upper }} </h2>#}
|
||||
{% for event in block_calendrier %}
|
||||
<div class="date-programme">
|
||||
<a href="">
|
||||
<a href="{% url 'show_event' event.slug %}">
|
||||
<img src="{% static 'arnaud_mvc/img/meta/reserver.png' %}" alt="reserver" class="linkcard"
|
||||
style="padding-right: 10px; padding-left:0px;">
|
||||
</a>
|
||||
<div class="date-programme-link">
|
||||
<a href="" style="text-decoration: none;">
|
||||
<a href="{% url 'show_event' event.slug %}" style="text-decoration: none;">
|
||||
<h2 style="margin:0;">{{ event.datetime | date:"D d F Y" }}</h2>
|
||||
</a>
|
||||
<a href="" style="color:#ffc801;">{{ event.name }}
|
||||
<a href="{% url 'show_event' event.slug %}" style="color:#ffc801;">{{ event.name }}
|
||||
- {{ event.datetime | time }}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
<nav class="nav-responsive">
|
||||
{% if configuration.button_adhesion %}
|
||||
<a href="" class="btn-responsive">
|
||||
<a href="#adherer" class="btn-responsive" title="adhesion_one" onclick="asideswipe.call(this);">
|
||||
<img src="{% static 'arnaud_mvc/img/menu/adhesion_card.png' %}" alt="adhesion">
|
||||
<h4 style="font-size: 0.8rem;">Adhérer</h4>
|
||||
</a>
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
<!-- MENU LIEUX -->
|
||||
<div class="menu-page">
|
||||
{% if configuration.button_adhesion %}
|
||||
<a href="" class="btn-menu-page">
|
||||
<a href="#adherer" class="btn-menu-page" title="adhesion_one" onclick="asideswipe.call(this);">
|
||||
<img src="{% static 'arnaud_mvc/img/menu/adhesion_card.png' %}" alt="billeterie Ti Billet">
|
||||
<h4 style="font-size: 0.8rem;">ADHERER</h4>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,66 @@
|
|||
{% load static %}
|
||||
{% get_media_prefix as MEDIA_PREFIX %}
|
||||
|
||||
<!-- START SEARCH MODAL MENU -->
|
||||
<div class="search" id="search">
|
||||
<form action="/ma-page-de-traitement" method="post" class="form-search">
|
||||
<div class="div-label-search">
|
||||
<label for="msg" class="label-search"><span href="pages/artiste.html" class="icone"
|
||||
title="Visiter la page de l'artiste">
|
||||
<img src="{% static 'arnaud_mvc/img/menu/searchnoir.png' %}" alt="Image de la vignette" style="scale: 0.7;">
|
||||
</span>
|
||||
<h1>Recherche</h1></label>
|
||||
<input type="search"/>
|
||||
<input type="submit" value="Submit" class="btn-adherer" style="margin-top: 30px;"">
|
||||
<a href="#" class="btn-adherer" style="margin-top: 30px;">Go</a>
|
||||
<a href="#" class="btn-adherer" title="search" onClick="asideswipe.call(this);">Fermer</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- END SEARCH MODAL MENU -->
|
||||
|
||||
|
||||
<!-- START ADHESION MODAL MENU -->
|
||||
<div class="search" id="adhesion_one">
|
||||
<form method="post" action="#" class="form-search">
|
||||
<div class="div-label-search">
|
||||
<label for="msg" class="label-search">
|
||||
<span href="pages/artiste.html" class="icone"
|
||||
title="Visiter la page de l'artiste">
|
||||
<img src="{% static 'arnaud_mvc/img/menu/searchnoir.png' %}"
|
||||
alt="Image de la vignette"
|
||||
style="scale: 0.7;">
|
||||
</span>
|
||||
<h1>Email</h1>
|
||||
</label>
|
||||
<input type="email" name="email" id="Email" required="True" value="{{ email }}"
|
||||
style="text-transform: lowercase;"/>
|
||||
<input type="submit" value="Continuer" class="btn-adherer" style="margin-top: 30px;"">
|
||||
<a href="#" class="btn-adherer" title="adhesion_one" onClick="asideswipe.call(this);">Fermer</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- END ADHESION MODAL MENU -->
|
||||
|
||||
<h2>Adhésion</h2>
|
||||
<h2 class="major">{{ client_name }}</h2>
|
||||
<form method="post" action="#">
|
||||
{% csrf_token %}
|
||||
<div class="fields">
|
||||
|
||||
<div class="field">
|
||||
{% if email %}
|
||||
<label for="email">Vérifiez votre adresse Email</label>
|
||||
<input type="email" name="email" id="Email" required="True" value="{{ email }}"
|
||||
style="text-transform: lowercase;"/>
|
||||
{% else %}
|
||||
<label for="email">Entrez votre adresse Email</label>
|
||||
<input type="email" name="email" id="email" required="True"
|
||||
style="text-transform: lowercase;"/>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<ul class="actions">
|
||||
<li><input type="submit" value="continuer" class="primary"/></li>
|
||||
</ul>
|
||||
</form>
|
||||
|
|
@ -46,6 +46,12 @@ class index(APIView):
|
|||
return render(request, 'arnaud_mvc/lieux.html', context=context)
|
||||
|
||||
|
||||
# class adhesion(APIView):
|
||||
# permission_classes = [AllowAny]
|
||||
#
|
||||
# def post(self, request):
|
||||
|
||||
|
||||
class event(APIView):
|
||||
permission_classes = [AllowAny]
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
# Generated by Django 2.2 on 2021-11-11 08:19
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('QrcodeCashless', '0002_cartecashless_user'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='detail',
|
||||
name='origine',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='origine', to='Customers.Client'),
|
||||
),
|
||||
]
|
||||
|
|
@ -21,7 +21,7 @@ class Detail(models.Model):
|
|||
)
|
||||
img_url = models.URLField(null=True, blank=True)
|
||||
base_url = models.CharField(max_length=60, null=True, blank=True)
|
||||
origine = models.ForeignKey(Customers_Client, on_delete=models.PROTECT, null=True, blank=True)
|
||||
origine = models.ForeignKey(Customers_Client, on_delete=models.PROTECT, null=True, blank=True, related_name='origine')
|
||||
generation = models.SmallIntegerField()
|
||||
|
||||
def __str__(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue