Merge branch 'main' into nonfree_main
# Conflicts: # Docker/Development/docker-compose.yml # Docker/Dockerfile_Node/dockerfile # Docker/compose/docker-compose-base.yml
This commit is contained in:
commit
fbcd3c2562
|
|
@ -185,6 +185,7 @@ class ReservationValidator(serializers.Serializer):
|
||||||
user_paiement.client_achat.add(connection.tenant)
|
user_paiement.client_achat.add(connection.tenant)
|
||||||
|
|
||||||
user_paiement.save()
|
user_paiement.save()
|
||||||
|
self.user_commande = user_paiement
|
||||||
return user_paiement.email
|
return user_paiement.email
|
||||||
|
|
||||||
def validate_prices(self, value):
|
def validate_prices(self, value):
|
||||||
|
|
|
||||||
|
|
@ -139,10 +139,15 @@ class ReservationViewset(viewsets.ViewSet):
|
||||||
return Response(validator.errors, status=status.HTTP_400_BAD_REQUEST)
|
return Response(validator.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
def get_permissions(self):
|
def get_permissions(self):
|
||||||
|
if self.action in ['list']:
|
||||||
permission_classes = [TenantAdminPermission]
|
permission_classes = [TenantAdminPermission]
|
||||||
|
else:
|
||||||
|
permission_classes = [permissions.AllowAny]
|
||||||
return [permission() for permission in permission_classes]
|
return [permission() for permission in permission_classes]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MembershipViewset(viewsets.ViewSet):
|
class MembershipViewset(viewsets.ViewSet):
|
||||||
permission_classes = [AllowAny]
|
permission_classes = [AllowAny]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
# Generated by Django 2.2 on 2021-12-21 13:23
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import stdimage.models
|
||||||
|
import stdimage.validators
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('BaseBillet', '0021_auto_20211206_1810'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='configuration',
|
||||||
|
name='template_billetterie',
|
||||||
|
field=models.CharField(blank=True, choices=[('html5up-massively', 'html5up-massively'), ('arnaud_mvc', 'arnaud_mvc'), ('original_arnaud', 'original_arnaud')], max_length=250, null=True, verbose_name='Template Billetterie'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='configuration',
|
||||||
|
name='template_meta',
|
||||||
|
field=models.CharField(blank=True, choices=[('html5up-story', 'html5up-story'), ('blk-mit', 'blk-mit')], max_length=250, null=True, verbose_name='Template Meta'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='product',
|
||||||
|
name='img',
|
||||||
|
field=stdimage.models.StdImageField(blank=True, null=True, upload_to='images/', validators=[stdimage.validators.MaxSizeValidator(1920, 1920)], verbose_name='Image du produit'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -158,8 +158,18 @@ class Configuration(SingletonModel):
|
||||||
verbose_name=_("Clé d'API du serveur cashless")
|
verbose_name=_("Clé d'API du serveur cashless")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ARNAUD, MASSIVELY, BLK_MVC, BLK_VUE = 'arnaud_mvc', 'html5up-masseively', 'blk_mvc', 'blk_vue'
|
||||||
|
CHOICE_TEMPLATE = [
|
||||||
|
(ARNAUD, _('arnaud_mvc')),
|
||||||
|
(MASSIVELY, _("html5up-masseively")),
|
||||||
|
(BLK_MVC, _("blk_mvc")),
|
||||||
|
(BLK_VUE, _("blk_vue")),
|
||||||
|
]
|
||||||
|
# choices=[(folder, folder) for folder in os.listdir(f"{settings.BASE_DIR}/BaseBillet/templates")],
|
||||||
|
|
||||||
template_billetterie = models.CharField(
|
template_billetterie = models.CharField(
|
||||||
choices=[(folder, folder) for folder in os.listdir(f"{settings.BASE_DIR}/BaseBillet/templates")],
|
choices=CHOICE_TEMPLATE,
|
||||||
|
default=ARNAUD,
|
||||||
max_length=250,
|
max_length=250,
|
||||||
blank=True,
|
blank=True,
|
||||||
null=True,
|
null=True,
|
||||||
|
|
@ -167,7 +177,8 @@ class Configuration(SingletonModel):
|
||||||
)
|
)
|
||||||
|
|
||||||
template_meta = models.CharField(
|
template_meta = models.CharField(
|
||||||
choices=[(folder, folder) for folder in os.listdir(f"{settings.BASE_DIR}/MetaBillet/templates")],
|
choices=CHOICE_TEMPLATE,
|
||||||
|
default=MASSIVELY,
|
||||||
max_length=250,
|
max_length=250,
|
||||||
blank=True,
|
blank=True,
|
||||||
null=True,
|
null=True,
|
||||||
|
|
|
||||||
|
|
@ -24,14 +24,10 @@ class index(APIView):
|
||||||
if not configuration.activer_billetterie:
|
if not configuration.activer_billetterie:
|
||||||
return HttpResponseRedirect('https://www.tibillet.re')
|
return HttpResponseRedirect('https://www.tibillet.re')
|
||||||
|
|
||||||
first_event = None
|
|
||||||
events = Event.objects.filter(datetime__gt=datetime.now())
|
|
||||||
if len(events) > 0:
|
|
||||||
first_event = events[0]
|
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'configuration': configuration,
|
'configuration': configuration,
|
||||||
'events': events,
|
'events': Event.objects.filter(datetime__gt=datetime.now()),
|
||||||
'categorie_billet': Product.BILLET,
|
'categorie_billet': Product.BILLET,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,19 +49,6 @@ services:
|
||||||
- frontend
|
- frontend
|
||||||
- backend-billeterie
|
- backend-billeterie
|
||||||
|
|
||||||
billetterie_front_node_dev:
|
|
||||||
extends:
|
|
||||||
file: ../compose/docker-compose-base.yml
|
|
||||||
service: billetterie_front_node
|
|
||||||
build:
|
|
||||||
context: ../Dockerfile_Node
|
|
||||||
target: 'develop-stage'
|
|
||||||
ports:
|
|
||||||
- 8080:8080
|
|
||||||
command: /bin/sh -c "yarn serve"
|
|
||||||
# command: "sleep 30d"
|
|
||||||
networks:
|
|
||||||
- frontend
|
|
||||||
|
|
||||||
# billetterie_nginx_dev:
|
# billetterie_nginx_dev:
|
||||||
# extends:
|
# extends:
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
# develop stage
|
|
||||||
FROM node:lts-bullseye as develop-stage
|
|
||||||
RUN apt update && apt upgrade -y
|
|
||||||
RUN apt install python -y
|
|
||||||
COPY package*.json ./
|
|
||||||
RUN yarn install
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
# build stage
|
|
||||||
FROM develop-stage as build-stage
|
|
||||||
RUN yarn build
|
|
||||||
|
|
||||||
# production stage
|
|
||||||
FROM nginx:stable-alpine as production-stage
|
|
||||||
COPY --from=build-stage /app/dist /usr/share/nginx/html
|
|
||||||
EXPOSE 80
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
|
||||||
|
|
@ -43,16 +43,6 @@ services:
|
||||||
working_dir: /DjangoFiles
|
working_dir: /DjangoFiles
|
||||||
# command: "bash /DjangoFiles/launch.sh"
|
# command: "bash /DjangoFiles/launch.sh"
|
||||||
|
|
||||||
|
|
||||||
billetterie_front_node:
|
|
||||||
container_name: billetterie_front_node
|
|
||||||
build: ../Dockerfile_Node
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- "../../DjangoFiles:/DjangoFiles"
|
|
||||||
- "../../Docker/bashrc:/root/.bashrc"
|
|
||||||
working_dir: /DjangoFiles/BaseBillet/static/blk-vue/blk-vue-cli-app
|
|
||||||
|
|
||||||
billetterie_nginx:
|
billetterie_nginx:
|
||||||
container_name: billetterie_nginx
|
container_name: billetterie_nginx
|
||||||
image: nginx
|
image: nginx
|
||||||
|
|
|
||||||
12
README.md
12
README.md
|
|
@ -17,17 +17,13 @@ TiBillet est en période de BETA et en expérimentation sur plusieurs lieux sur
|
||||||
Bisik, à la Raffinerie, à Vavang'Art et au Manapany Festival !
|
Bisik, à la Raffinerie, à Vavang'Art et au Manapany Festival !
|
||||||
|
|
||||||
Le présent dépot ne contient pas encore toutes les sources du projet. La billetterie est en cours de refactoring et les
|
Le présent dépot ne contient pas encore toutes les sources du projet. La billetterie est en cours de refactoring et les
|
||||||
sources sont publiées petit à petit sous licence aGPLv3. Mise en production totale prévue fin 2021.
|
sources sont publiées petit à petit sous licence libre.
|
||||||
|
|
||||||
Le Cashless est en cours d'audit de sécurité et sera publié sous licence de type BSL : open-source et libre en dehors de
|
Le Cashless est en cours d'audit de sécurité et sera publié sous licence libre dès que possible.
|
||||||
toute utilisation commerciale type SaaS, avec mise en licence aGPLv3 progressive au fil des financements et des
|
|
||||||
rentabilisations du développement.
|
|
||||||
|
|
||||||
Inspirée par les expériences de Sentry, ElasticSearch, MongoDb, nous souhaitons que TiBillet soit libre d'utilisation
|
Pour l'expérimenter chez vous, n'hésitez pas à nous contacter :)
|
||||||
pour toutes structures associatives ou entreprises coopératives à but non lucratif tout en encourageant les acteurs
|
|
||||||
commerciaux à participer activement au développement.
|
|
||||||
|
|
||||||
TiBillet est construit par l'association des 3Peaks de Manapany. Créateurs du Manapany Surf Festival !
|
TiBillet est construit par l'association des 3Peaks de Manapany : Créateurs du Manapany Surf Festival !
|
||||||
|
|
||||||
## Installation :
|
## Installation :
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue