diff --git a/DjangoFiles/ApiBillet/serializers.py b/DjangoFiles/ApiBillet/serializers.py index f63d1fb..0716364 100644 --- a/DjangoFiles/ApiBillet/serializers.py +++ b/DjangoFiles/ApiBillet/serializers.py @@ -185,6 +185,7 @@ class ReservationValidator(serializers.Serializer): user_paiement.client_achat.add(connection.tenant) user_paiement.save() + self.user_commande = user_paiement return user_paiement.email def validate_prices(self, value): diff --git a/DjangoFiles/ApiBillet/views.py b/DjangoFiles/ApiBillet/views.py index f486f79..a5daf50 100644 --- a/DjangoFiles/ApiBillet/views.py +++ b/DjangoFiles/ApiBillet/views.py @@ -139,10 +139,15 @@ class ReservationViewset(viewsets.ViewSet): return Response(validator.errors, status=status.HTTP_400_BAD_REQUEST) def get_permissions(self): - permission_classes = [TenantAdminPermission] + if self.action in ['list']: + permission_classes = [TenantAdminPermission] + else: + permission_classes = [permissions.AllowAny] return [permission() for permission in permission_classes] + + class MembershipViewset(viewsets.ViewSet): permission_classes = [AllowAny] diff --git a/DjangoFiles/BaseBillet/migrations/0022_auto_20211221_1723.py b/DjangoFiles/BaseBillet/migrations/0022_auto_20211221_1723.py new file mode 100644 index 0000000..4a7988d --- /dev/null +++ b/DjangoFiles/BaseBillet/migrations/0022_auto_20211221_1723.py @@ -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'), + ), + ] diff --git a/DjangoFiles/BaseBillet/models.py b/DjangoFiles/BaseBillet/models.py index 4912813..336cd29 100644 --- a/DjangoFiles/BaseBillet/models.py +++ b/DjangoFiles/BaseBillet/models.py @@ -158,8 +158,18 @@ class Configuration(SingletonModel): 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( - choices=[(folder, folder) for folder in os.listdir(f"{settings.BASE_DIR}/BaseBillet/templates")], + choices=CHOICE_TEMPLATE, + default=ARNAUD, max_length=250, blank=True, null=True, @@ -167,7 +177,8 @@ class Configuration(SingletonModel): ) 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, blank=True, null=True, diff --git a/DjangoFiles/BaseBillet/views.py b/DjangoFiles/BaseBillet/views.py index 6f549a4..4cba032 100644 --- a/DjangoFiles/BaseBillet/views.py +++ b/DjangoFiles/BaseBillet/views.py @@ -24,14 +24,10 @@ class index(APIView): if not configuration.activer_billetterie: 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 = { 'configuration': configuration, - 'events': events, + 'events': Event.objects.filter(datetime__gt=datetime.now()), 'categorie_billet': Product.BILLET, } diff --git a/Docker/Development/docker-compose.yml b/Docker/Development/docker-compose.yml index 631dd26..6680889 100644 --- a/Docker/Development/docker-compose.yml +++ b/Docker/Development/docker-compose.yml @@ -49,19 +49,6 @@ services: - frontend - 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: # extends: diff --git a/Docker/Dockerfile_Node/dockerfile b/Docker/Dockerfile_Node/dockerfile deleted file mode 100644 index ca6f17f..0000000 --- a/Docker/Dockerfile_Node/dockerfile +++ /dev/null @@ -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;"] diff --git a/Docker/compose/docker-compose-base.yml b/Docker/compose/docker-compose-base.yml index 1be296d..6e431ec 100644 --- a/Docker/compose/docker-compose-base.yml +++ b/Docker/compose/docker-compose-base.yml @@ -43,16 +43,6 @@ services: working_dir: /DjangoFiles # 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: container_name: billetterie_nginx image: nginx diff --git a/README.md b/README.md index 33cfa8f..1d7cbd6 100644 --- a/README.md +++ b/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 ! 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 -toute utilisation commerciale type SaaS, avec mise en licence aGPLv3 progressive au fil des financements et des -rentabilisations du développement. +Le Cashless est en cours d'audit de sécurité et sera publié sous licence libre dès que possible. -Inspirée par les expériences de Sentry, ElasticSearch, MongoDb, nous souhaitons que TiBillet soit libre d'utilisation -pour toutes structures associatives ou entreprises coopératives à but non lucratif tout en encourageant les acteurs -commerciaux à participer activement au développement. +Pour l'expérimenter chez vous, n'hésitez pas à nous contacter :) -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 :