parent
dcc3672c45
commit
a1314c683a
|
|
@ -158,6 +158,6 @@ class CarteCashlessAdmin(admin.ModelAdmin):
|
||||||
get_origin.short_description = 'Origine'
|
get_origin.short_description = 'Origine'
|
||||||
|
|
||||||
search_fields = ('tag_id', 'uuid', 'number')
|
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)
|
public_admin_site.register(CarteCashless, CarteCashlessAdmin)
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,7 @@ class ReservationViewset(viewsets.ViewSet):
|
||||||
permission_classes = [TenantAdminPermission]
|
permission_classes = [TenantAdminPermission]
|
||||||
return [permission() for permission in permission_classes]
|
return [permission() for permission in permission_classes]
|
||||||
|
|
||||||
|
# class Adhesion(viewsets.ViewSet):
|
||||||
|
|
||||||
class TicketPdf(WeasyTemplateView):
|
class TicketPdf(WeasyTemplateView):
|
||||||
permission_classes = [AllowAny]
|
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]
|
staff_group = Group.objects.get_or_create(name="staff")[0]
|
||||||
user.groups.add(staff_group)
|
user.groups.add(staff_group)
|
||||||
|
|
||||||
|
|
||||||
class TibilletUser(AbstractUser):
|
class TibilletUser(AbstractUser):
|
||||||
|
|
||||||
#TODO regarder du coté du dashboard de jet, ça plante avec uuid !
|
#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)
|
username = models.CharField(max_length=200, unique=True)
|
||||||
phone = models.CharField(max_length=20, null=True, blank=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'
|
TYPE_TERM, TYPE_HUM, TYPE_ANDR = 'TE', 'HU', 'AN'
|
||||||
ESPECE_CHOICES = (
|
ESPECE_CHOICES = (
|
||||||
(TYPE_TERM, 'Terminal'),
|
(TYPE_TERM, 'Terminal'),
|
||||||
|
|
@ -206,6 +212,19 @@ class HumanUser(TibilletUser):
|
||||||
super().save(*args, **kwargs)
|
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):
|
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 */
|
/* FORM */
|
||||||
.search {
|
.search {
|
||||||
display: none;
|
display: none;
|
||||||
position: absolute;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
background-color: #000000e0;
|
background-color: #000000e0;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
<head>
|
<head>
|
||||||
|
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>TiBillet</title>
|
<title>TiBillet</title>
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
<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="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 '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>
|
</head>
|
||||||
{% endblock header %}
|
{% endblock header %}
|
||||||
|
|
@ -38,14 +43,28 @@
|
||||||
<ul id="menutb" class="menutb">
|
<ul id="menutb" class="menutb">
|
||||||
|
|
||||||
<li class="m">
|
<li class="m">
|
||||||
<a href="/"><img src="{% static 'arnaud_mvc/img/menu/home.svg' %}"
|
<a href="#">
|
||||||
alt="logo billeterie Ti Billet" class="menutibillet m1"></a></li>
|
<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' %}"#}
|
{# <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>#}
|
{# 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">
|
||||||
{# <li class="m"><a href="#Contact"><img src="{% static 'arnaud_mvc/img/menu/search.svg' %}"#}
|
<a href="#calendar">
|
||||||
{# alt="logo billeterie Ti Billet" class="menutibillet m4"></a></li>#}
|
<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()" -->
|
<!-- onClick="asideswipe()" -->
|
||||||
</ul>
|
</ul>
|
||||||
|
|
@ -56,9 +75,11 @@
|
||||||
<!-- END FILTER MENU -->
|
<!-- END FILTER MENU -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{% endblock nav %}
|
{% endblock nav %}
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
{% include 'arnaud_mvc/modals.html' %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
@ -69,6 +90,24 @@
|
||||||
{% endblock footer %}
|
{% endblock footer %}
|
||||||
</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/gsap.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.8.0/CSSRulePlugin.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>
|
<script src="{% static 'arnaud_mvc/tibillet.js' %}"></script>
|
||||||
|
|
|
||||||
|
|
@ -3,18 +3,18 @@
|
||||||
<!-- CARD PROGRAMME -->
|
<!-- CARD PROGRAMME -->
|
||||||
{% for block_calendrier in events|range_by:5 %}
|
{% for block_calendrier in events|range_by:5 %}
|
||||||
<div id="calendar" class="card card-meta card-programme">
|
<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 %}
|
{% for event in block_calendrier %}
|
||||||
<div class="date-programme">
|
<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"
|
<img src="{% static 'arnaud_mvc/img/meta/reserver.png' %}" alt="reserver" class="linkcard"
|
||||||
style="padding-right: 10px; padding-left:0px;">
|
style="padding-right: 10px; padding-left:0px;">
|
||||||
</a>
|
</a>
|
||||||
<div class="date-programme-link">
|
<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>
|
<h2 style="margin:0;">{{ event.datetime | date:"D d F Y" }}</h2>
|
||||||
</a>
|
</a>
|
||||||
<a href="" style="color:#ffc801;">{{ event.name }}
|
<a href="{% url 'show_event' event.slug %}" style="color:#ffc801;">{{ event.name }}
|
||||||
- {{ event.datetime | time }}</a>
|
- {{ event.datetime | time }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- END DESCRIPTION -->
|
<!-- END DESCRIPTION -->
|
||||||
|
|
||||||
{% include 'arnaud_mvc/menu.html' %}
|
{% include 'arnaud_mvc/menu.html' %}
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
<nav class="nav-responsive">
|
<nav class="nav-responsive">
|
||||||
{% if configuration.button_adhesion %}
|
{% 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">
|
<img src="{% static 'arnaud_mvc/img/menu/adhesion_card.png' %}" alt="adhesion">
|
||||||
<h4 style="font-size: 0.8rem;">Adhérer</h4>
|
<h4 style="font-size: 0.8rem;">Adhérer</h4>
|
||||||
</a>
|
</a>
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
<!-- MENU LIEUX -->
|
<!-- MENU LIEUX -->
|
||||||
<div class="menu-page">
|
<div class="menu-page">
|
||||||
{% if configuration.button_adhesion %}
|
{% 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">
|
<img src="{% static 'arnaud_mvc/img/menu/adhesion_card.png' %}" alt="billeterie Ti Billet">
|
||||||
<h4 style="font-size: 0.8rem;">ADHERER</h4>
|
<h4 style="font-size: 0.8rem;">ADHERER</h4>
|
||||||
</a>
|
</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>
|
||||||
|
|
@ -33,6 +33,6 @@
|
||||||
'<li class="m">' +
|
'<li class="m">' +
|
||||||
'<a id="filter" class="filter">' +
|
'<a id="filter" class="filter">' +
|
||||||
'<img src="' +svg+
|
'<img src="' +svg+
|
||||||
'" alt="logo billeterie Ti Billet" class="menutibillet filter m5"></a></li>';
|
'" alt="logo billeterie Ti Billet" class="menutibillet filter m5"></a></li>';
|
||||||
ul.appendChild(li);
|
ul.appendChild(li);
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -46,6 +46,12 @@ class index(APIView):
|
||||||
return render(request, 'arnaud_mvc/lieux.html', context=context)
|
return render(request, 'arnaud_mvc/lieux.html', context=context)
|
||||||
|
|
||||||
|
|
||||||
|
# class adhesion(APIView):
|
||||||
|
# permission_classes = [AllowAny]
|
||||||
|
#
|
||||||
|
# def post(self, request):
|
||||||
|
|
||||||
|
|
||||||
class event(APIView):
|
class event(APIView):
|
||||||
permission_classes = [AllowAny]
|
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)
|
img_url = models.URLField(null=True, blank=True)
|
||||||
base_url = models.CharField(max_length=60, 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()
|
generation = models.SmallIntegerField()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue