Jelajahi Sumber

Merge branch 'main' of https://forgejo.reymota.es/creylopez/JugarAlPadelOC

Celestino Rey 1 tahun lalu
induk
melakukan
82519193fb

+ 7 - 0
Dockerfile.k8s

@@ -48,6 +48,13 @@ COPY --from=builder /app/requirements.txt .
 RUN pip install --upgrade pip
 RUN pip install --no-cache /wheels/*
 
+# copia fichero de configuración de nginx
+
+COPY ./nginx/nginx.conf /etc/nginx/
+
+# enlace los logs de nginx a stdout
+RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log
+
 # copy entrypoint.sh
 COPY ./entrypoint.sh .
 

+ 37 - 0
Dockerfile.oc

@@ -0,0 +1,37 @@
+FROM python:3.11-slim
+
+# install system dependencies
+RUN apt-get update && apt-get install nginx netcat-openbsd curl vim jq rsync libpango-1.0-0 libpangocairo-1.0-0 libcairo2 -y
+
+# copy our nginx configuration to overwrite nginx defaults
+RUN rm /etc/nginx/sites-enabled/default
+RUN rm /etc/nginx/sites-available/default
+COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
+
+# link nginx logs to container stdout
+RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log
+
+# copy the django code
+COPY ./src ./app
+
+# change our working directory to the django projcet roo
+WORKDIR /app
+
+# create virtual env (notice the location?)
+# update pip
+# install requirements
+RUN python -m venv /opt/venv && \
+    /opt/venv/bin/python -m pip install pip --upgrade && \
+    /opt/venv/bin/python -m pip install -r requirements.txt
+
+# Añade path a .bashrc
+
+RUN echo "export PATH=/opt/venv/bin/:$PATH" >> /root/.bashrc
+
+# make our entrypoint.sh executable
+RUN chmod +x config/entrypoint.sh
+
+#EXPOSE 8080
+
+# execute our entrypoint.sh file
+CMD ["./config/entrypoint.sh"]

+ 57 - 20
K8S/Makefile.OC

@@ -1,10 +1,25 @@
+export ARQUITECTURA := $(shell lscpu |grep itectur | tr -d ' '| cut -f2 -d':')
 export REGISTRY=registry.reymota.es
 
-export IMG_VERSION = 0.70.42
-export IMG_NGINX_VERSION = 2.3
+export IMG_VERSION = 0.90.26
 
 # limpia todo
-all: imagen clean install
+all: ayuda
+
+todo: imagen clean install
+
+ayuda:
+	@echo  "make imagen -> crea la imagen del contenedor con la aplicación y la sube al registry"
+	@echo  "make ns -> crea el namespace"
+	@echo  "make app -> crea el deployment de la aplicación"
+	@echo  "make borraapp -> borra el deployment de la aplicación"
+	@echo  "make claims -> crea las pvc"
+	@echo  "make borraclaims -> crea las pvc ¡ojo! lo que haya en los volumenes se pierde"
+	@echo  "make volumes -> crea los pv en entornos donde no hay creación dinámica de los volumenes"
+	@echo  "make borravolumes -> borra los pv en entornos donde no hay creación dinámica de los volumenes"
+	@echo  "make install -> crea los confimaps, servicios y deployments de todo"
+	@echo  "make clean -> borra los confimaps, servicios y deployments de todo"
+	@echo  "make todo -> crea todo"
 
 imagen:
 	cd ../; make
@@ -12,18 +27,11 @@ imagen:
 ns:
 	-oc create -f namespace.yaml
 
-borrans:
-	-oc delete -f namespace.yaml
-
-claims:
-	-oc create -f pvc-jugaralpadel.yaml
-	-oc create -f pvc-static.yaml
-	-oc create -f pvc-postgresql.yaml
+app:
+	-envsubst < jugaralpadel-deployment.yaml |oc create -f -
 
-borraclaims:
-	-oc delete -f pvc-jugaralpadel.yaml
-	-oc delete -f pvc-static.yaml
-	-oc delete -f pvc-postgresql.yaml
+borraapp:
+	-envsubst < jugaralpadel-deployment.yaml |oc delete -f -
 
 install:
 	-oc create -f reg-secret.yaml
@@ -34,14 +42,25 @@ install:
 	-oc create -f db-service.yaml
 
 	-envsubst < jugaralpadel-deployment.yaml |oc create -f -
-	-envsubst < nginx-deployment.yaml |oc create -f -
-	-oc create -f nginx-service.yaml
-	-oc create -f jugaralpadel-ingress.yaml
+	-oc expose service/jugaralpadel
 
+claims:
+	-oc create -f pvc-jugaralpadel.yaml
+	-oc create -f pvc-static.yaml
+	-oc create -f pvc-postgresql.yaml
+
+borraclaims:
+	-oc delete -f pvc-jugaralpadel.yaml
+	-oc delete -f pvc-static.yaml
+	-oc delete -f pvc-postgresql.yaml
+
+volumes:
+	-oc create -f pv-local-jugaralpadel.yaml
+
+borravolumes:
+	-oc delete -f pv-local-jugaralpadel.yaml
 
 clean:
-	-envsubst < nginx-deployment.yaml |oc delete -f -
-	-oc delete -f nginx-service.yaml
 	-envsubst < jugaralpadel-deployment.yaml |oc delete -f -
 
 	-oc delete -f db-deployment.yaml
@@ -51,5 +70,23 @@ clean:
 	-oc delete -f env-prod-db-configmap.yaml 
 
 	-oc delete -f reg-secret.yaml
-	-oc delete -f namespace.yaml
+
+verimg:
+	docker run -it  ${REGISTRY}/jugaralpadel-${ARQUITECTURA}:${IMG_VERSION} bash
+
+backup:
+	oc --kubeconfig /home/creylopez/.kube/config -n jugaralpadel exec -ti deployment.apps/db -- /usr/lib/postgresql/15/bin/pg_dump --username=creylopez --dbname=jugaralpadel > jugaralpadel-$(IMG_VERSION).sql
+   
+fleet:
+	-cp namespace.yaml ../Fleet/15-namespace.yaml
+	-cp reg-secret.yaml ../Fleet/20-reg-secret.yaml
+	-cp env-prod-configmap.yaml  ../Fleet/25-env-prod-configmap.yaml
+	-cp env-prod-db-configmap.yaml  ../Fleet/30-env-prod-db-configmap.yaml
+	-cp pvc-jugaralpadel.yaml ../Fleet/40-pvc-jugaralpadel.yaml
+	-cp pvc-static.yaml ../Fleet/45-pvc-static.yaml
+	-cp pvc-postgresql.yaml ../Fleet/50-pvc-postgresql.yaml
+	-cp db-deployment.yaml ../Fleet/55-db-deployment.yaml
+	-cp db-service.yaml ../Fleet/60-db-service.yaml
+	-envsubst < jugaralpadel-deployment.yaml > ../Fleet/70-jugaralpadel-deployment.yaml
+	-cp jugaralpadel-ingress.yaml ../Fleet/80-jugaralpadel-ingress.yaml
 

+ 2 - 0
K8S/creaCredencialesRegistry.sh

@@ -0,0 +1,2 @@
+# Añadir lo que salga a la directiva .dockerconfigjson en el fichero de secretos reg-secret.yaml
+cat /home/kubeadmin/.docker/config.json |base64 -w 0

+ 1 - 0
K8S/db-deployment.yaml

@@ -6,6 +6,7 @@ metadata:
     kompose.version: 1.34.0 (cbf2835db)
   labels:
     io.kompose.service: postgresql
+    app.kubernetes.io/part-of: jugaralpadel
   name: postgresql
   namespace: jugaralpadel
 spec:

+ 8 - 0
K8S/env-prod-configmap.yaml

@@ -1,7 +1,15 @@
 apiVersion: v1
 data:
   DEBUG: "False"
+  APP_VERSION: 16.0.6
+  SQL_DATABASE: reymota
+  SQL_ENGINE: django.db.backends.postgresql
+  SQL_HOST: postgresql
+  SQL_PASSWORD: Dsa-0213
+  SQL_PORT: "5432"
+  SQL_USER: creylopez
   DATABASE: postgres
+  MES_COMIENZO_TEMPORADA: "9"
 kind: ConfigMap
 metadata:
   labels:

+ 53 - 10
K8S/jugaralpadel-deployment.yaml

@@ -4,10 +4,12 @@ metadata:
   name: jugaralpadel
   namespace: jugaralpadel
 spec:
+  type: NodePort
   ports:
-    - name: "8000"
-      port: 8000
-      targetPort: 8000
+    - name: "8080"
+      port: 8080
+      nodePort: 30343
+      targetPort: 8080
   selector:
     app: jugaralpadel
 ---
@@ -18,6 +20,7 @@ metadata:
   namespace: jugaralpadel
   labels:
     app: jugaralpadel
+    app.kubernetes.io/part-of: jugaralpadel
 spec:
   replicas: 1
   selector:
@@ -31,13 +34,8 @@ spec:
         app: jugaralpadel
     spec:
       containers:
-      - args:
-          - gunicorn
-          - gestion_reservas.wsgi:application
-          - --bind
-          - 0.0.0.0:8000
-        name: jugaralpadel
-        image: $REGISTRY/jugaralpadel-$ARQUITECTURA:$IMG_VERSION
+      - name: jugaralpadel
+        image: $REGISTRY/jugaralpadel:$IMG_VERSION
         env:
         - name: IMG_VERSION
           value: "$IMG_VERSION"
@@ -46,6 +44,51 @@ spec:
             configMapKeyRef:
               key: DEBUG
               name: env-prod
+        - name: APP_VERSION
+          valueFrom:
+            configMapKeyRef:
+              key: APP_VERSION
+              name: env-prod
+        - name: MES_COMIENZO_TEMPORADA
+          valueFrom:
+            configMapKeyRef:
+              key: MES_COMIENZO_TEMPORADA
+              name: env-prod
+        - name: DATABASE
+          valueFrom:
+            configMapKeyRef:
+              key: DATABASE
+              name: env-prod
+        - name: SQL_HOST
+          valueFrom:
+            configMapKeyRef:
+              key: SQL_HOST
+              name: env-prod
+        - name: SQL_PORT
+          valueFrom:
+            configMapKeyRef:
+              key: SQL_PORT
+              name: env-prod
+        - name: SQL_ENGINE
+          valueFrom:
+            configMapKeyRef:
+              key: SQL_ENGINE
+              name: env-prod
+        - name: SQL_DATABASE
+          valueFrom:
+            configMapKeyRef:
+              key: SQL_DATABASE
+              name: env-prod
+        - name: SQL_USER
+          valueFrom:
+            configMapKeyRef:
+              key: SQL_USER
+              name: env-prod
+        - name: SQL_PASSWORD
+          valueFrom:
+            configMapKeyRef:
+              key: SQL_PASSWORD
+              name: env-prod
         ports:
         - containerPort: 8000
           protocol: TCP

+ 1 - 1
K8S/jugaralpadel-ingress.yaml

@@ -26,6 +26,6 @@ spec:
         number: 1337
   ingressClassName: nginx
   rules:
-    - host: jugaralpadel.rancher.reymota.lab
+    - host: jalp.reymota.es
 status:
   loadBalancer: {}

+ 3 - 0
K8S/pvc-jugaralpadel.yaml

@@ -12,6 +12,7 @@ spec:
   resources:
     requests:
       storage: 100Mi
+  #storageClassName: lvms-vg1
 status: {}
 ---
 apiVersion: v1
@@ -28,6 +29,7 @@ spec:
   resources:
     requests:
       storage: 50Mi
+  #storageClassName: lvms-vg1
 status: {}
 ---
 apiVersion: v1
@@ -44,4 +46,5 @@ spec:
   resources:
     requests:
       storage: 53Mi
+  #storageClassName: lvms-vg1
 status: {}

+ 1 - 0
K8S/pvc-postgresql.yaml

@@ -11,3 +11,4 @@ spec:
   resources:
     requests:
       storage: 150Mi
+  #storageClassName: lvms-vg1

+ 1 - 0
K8S/pvc-static.yaml

@@ -11,3 +11,4 @@ spec:
   resources:
     requests:
       storage: 70Mi
+  #storageClassName: lvms-vg1

+ 3 - 3
Makefile

@@ -1,8 +1,8 @@
 install:
 
-	echo "Creando imagen con version '${IMG_VERSION}' para la arquitectura '${ARQUITECTURA}' en el registry '${REGISTRY}'"
+	echo "Creando imagen con version '${IMG_VERSION}' en el registry '${REGISTRY}'"
 
-	docker build --no-cache -t ${REGISTRY}/jugaralpadel-${ARQUITECTURA}:${IMG_VERSION} -f Dockerfile.k8s .
-	docker push ${REGISTRY}/jugaralpadel-${ARQUITECTURA}:${IMG_VERSION}
+	docker build --no-cache -t ${REGISTRY}/jugaralpadel:${IMG_VERSION} -f Dockerfile.oc .
+	docker push ${REGISTRY}/jugaralpadel:${IMG_VERSION}
 
 

+ 0 - 45
README.md

@@ -10,51 +10,6 @@
 
     oc adm policy add-scc-to-user anyuid -z default
 
-### Añadir la app desde gitea
-
-    oc new-app https://forgejo.reymota.es/creylopez/JugarAlPadelOC.git -e DEBUG="False" -e MES_COMIENZO_TEMPORADA=9 --name='jugaralpadel'
-
-Tal y como está la estructura de directorios, deberia detectar automáticamente una compilación Python
-
-## Asignación de los volúmenes
-### Si la pvc no está creada
-
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --claim-size=300M --name=jugaralpadel-eventos-migrations --claim-name='jugaralpadel-eventos-migrations' --mount-path='/app/eventos/migrations'
-    
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --claim-size=300M --name=jugaralpadel-media --claim-name='jugaralpadel-media' --mount-path='/app/mediafiles'
-    
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --claim-size=300M --name=jugaralpadel-gestionreservas-migrations --claim-name='jugaralpadel-gestionreservas-migrations' --mount-path='/app/gestionreservas/migrations'
-    
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --claim-size=300M --name=jugaralpadel-reymotausers-migrations --claim-name='jugaralpadel-reymotausers-migrations' --mount-path='/app/reymotausers/migrations'
-    
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --claim-size=50G --name=static-volume --claim-name='static-volume' --mount-path='/app/staticfiles'
-     
- 
-### Si la pvc ya está creada
-
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --name=jugaralpadel-eventos-migrations --claim-name='jugaralpadel-eventos-migrations' --mount-path='/app/eventos/migrations'
-    
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --name=jugaralpadel-media --claim-name='jugaralpadel-media' --mount-path='/app/mediafiles'
-    
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --name=jugaralpadel-gestionreservas-migrations --claim-name='jugaralpadel-gestionreservas-migrations' --mount-path='/app/gestionreservas/migrations'
-    
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --name=jugaralpadel-reymotausers-migrations --claim-name='jugaralpadel-reymotausers-migrations' --mount-path='/app/reymotausers/migrations'
-    
-    oc set volume deployment.apps/jugaralpadel --add -t pvc --name=static-volume --claim-name='static-volume' --mount-path='/app/staticfiles'
-
-
-## Exponer el servicio
-    oc expose service/jugaralpadel
-    
-### postgresql
-Los ficheros yaml están en el directorio Yamls.
-
-Se crea el deployment y el servicio con la shell creaDB.sh
-Se borran con borraDB.sh
-
-Hay que tener en cuenta que la PVC *no* se crea en estas shells. Hay que crearla a mano. Esto se hace para no perder los datos.
-
-
 ## Cosas a hacer la primera vez
 Desde dentro de la shell del pod
 

+ 0 - 3
Shells/borraDB.sh

@@ -1,3 +0,0 @@
-oc delete -f Yamls/env-prod-db-configmap.yaml
-oc delete -f Yamls/postgresql-deployment.yaml
-oc delete -f Yamls/postgresql-service.yaml

+ 0 - 4
Shells/creaDB.sh

@@ -1,4 +0,0 @@
-oc create -f Yamls/env-prod-db-configmap.yaml
-#oc create -f Yamls/pvc-postgresql.yaml
-oc create -f Yamls/postgresql-deployment.yaml
-oc create -f Yamls/postgresql-service.yaml

+ 0 - 1
Shells/entra.sh

@@ -1 +0,0 @@
-oc exec -it deployment.apps/reymotaappsoc -- bash

+ 0 - 8
Shells/lanza.sh

@@ -1,8 +0,0 @@
-oc new-app http://gitea.reymota.es/creylopez/JugarAlPadelOC.git -e DEBUG="False" -e VERSION=11.0 --name='jugaralpadel'
-
-oc set volume deployment.apps/jugaralpadel --add -t pvc --name=jugaralpadel-eventos-migrations --claim-name='jugaralpadel-eventos-migrations' --mount-path='/app/eventos/migrations'
-oc set volume deployment.apps/jugaralpadel --add -t pvc --name=jugaralpadel-media --claim-name='jugaralpadel-media' --mount-path='/app/mediafiles'
-oc set volume deployment.apps/jugaralpadel --add -t pvc --name=reymota-reymotausers-migrations --claim-name='reymota-reymotausers-migrations' --mount-path='/app/reymotausers/migrations'
-oc set volume deployment.apps/jugaralpadel --add -t pvc --name=static-volume --claim-name='static-volume' --mount-path='/app/staticfiles'
-oc expose service/jugaralpadel
-

+ 0 - 1
Shells/nuevaapp.sh

@@ -1 +0,0 @@
-    oc new-app https://forgejo.reymota.es/creylopez/JugarAlPadelOC.git -e DEBUG="False" -e MES_COMIENZO_TEMPORADA=9 --name='jugaralpadel'

+ 0 - 11
Yamls/env-prod-db-configmap.yaml

@@ -1,11 +0,0 @@
-apiVersion: v1
-data:
-  POSTGRES_DB: jugaralpadel
-  POSTGRES_PASSWORD: Dsa-0213
-  POSTGRES_USER: creylopez
-kind: ConfigMap
-metadata:
-  labels:
-    io.kompose.service: db-env-prod-db
-  name: env-prod-db
-  namespace: jugaralpadel

+ 0 - 11
Yamls/jugaralpadel-gitrepo.yaml

@@ -1,11 +0,0 @@
-kind: GitRepo
-apiVersion: fleet.cattle.io/v1alpha1
-metadata:
-  name: jugaralpadel
-  namespace: fleet-local
-spec:
-  branch: main
-  clientSecretName: auth-47rqx
-  repo: https://forgejo.reymota.es/creylopez/JugarAlPadelOC.git
-  paths:
-  - Fleet

+ 0 - 15
Yamls/jugaralpadel-service.yaml

@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  name: jugaralpadel
-  namespace: jugaralpadel
-spec:
-  type: LoadBalancer
-  ports:
-    - name: "8080"
-      port: 8080
-      nodePort: 30345
-      targetPort: 8080
-  selector:
-    deployment: jugaralpadel
-

+ 0 - 52
Yamls/postgresql-deployment.yaml

@@ -1,52 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  annotations:
-    kompose.cmd: kompose convert
-    kompose.version: 1.34.0 (cbf2835db)
-  labels:
-    io.kompose.service: postgresql
-  name: postgresql
-  namespace: jugaralpadel
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      io.kompose.service: postgresql
-  strategy:
-    type: Recreate
-  template:
-    metadata:
-      annotations:
-        kompose.cmd: kompose convert
-        kompose.version: 1.34.0 (cbf2835db)
-      labels:
-        io.kompose.service: postgresql
-    spec:
-      containers:
-        - env:
-            - name: POSTGRES_DB
-              valueFrom:
-                configMapKeyRef:
-                  key: POSTGRES_DB
-                  name: env-prod-db
-            - name: POSTGRES_PASSWORD
-              valueFrom:
-                configMapKeyRef:
-                  key: POSTGRES_PASSWORD
-                  name: env-prod-db
-            - name: POSTGRES_USER
-              valueFrom:
-                configMapKeyRef:
-                  key: POSTGRES_USER
-                  name: env-prod-db
-          image: postgres:15
-          name: postgresql
-          volumeMounts:
-            - mountPath: /var/lib/postgresql/data
-              name: postgresql
-      restartPolicy: Always
-      volumes:
-        - name: postgresql
-          persistentVolumeClaim:
-            claimName: postgresql

+ 0 - 17
Yamls/postgresql-service.yaml

@@ -1,17 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  annotations:
-    kompose.cmd: kompose convert
-    kompose.version: 1.34.0 (cbf2835db)
-  labels:
-    io.kompose.service: postgresql
-  name: postgresql
-  namespace: jugaralpadel
-spec:
-  ports:
-    - name: "5432"
-      port: 5432
-      targetPort: 5432
-  selector:
-    io.kompose.service: postgresql

+ 0 - 17
Yamls/pvc-postgresql.yaml

@@ -1,17 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  finalizers:
-  - kubernetes.io/pvc-protection
-  labels:
-    template: postgresql-persistent-template
-  name: postgresql
-  namespace: jugaralpadel
-spec:
-  accessModes:
-  - ReadWriteOnce
-  resources:
-    requests:
-      storage: 1Gi
-  storageClassName: lvms-vg1
-  volumeMode: Filesystem

+ 0 - 22
entrypoint.sh

@@ -1,22 +0,0 @@
-#!/bin/bash
-
-# Este es para K8S
-
-if [ "$DATABASE" = "postgres" ]
-then
-    echo "Waiting for postgres..."
-
-    while ! nc -z $SQL_HOST $SQL_PORT; do
-      sleep 0.1
-    done
-
-    echo "PostgreSQL started"
-else
-    echo "la base de datos no es postgres: '$DATABASE'"
-fi
-
-python manage.py collectstatic --noinput
-#python manage.py flush --no-input
-#python manage.py migrate
-
-exec "$@"

+ 45 - 0
nginx/nginx.conf

@@ -0,0 +1,45 @@
+error_log  /var/log/nginx/error.log notice;
+
+events {
+    worker_connections 1024;
+}
+
+http {
+    include       /etc/nginx/mime.types;
+    default_type  application/octet-stream;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    access_log   /var/log/nginx/access.log main;
+
+    sendfile        on;
+    #tcp_nopush     on;
+
+    keepalive_timeout  65;
+
+    #gzip  on;
+
+    server {
+
+        listen 80;
+
+        location / {
+            proxy_pass http://jugaralpadel:8000;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header Host $http_host;
+            proxy_redirect off;
+            client_max_body_size 100M;
+        }
+
+        location /static/ {
+            alias /app/src/staticfiles/;
+        }
+
+        location /media/ {
+            alias /app/src/mediafiles/;
+        }
+
+    }
+}

+ 2 - 3
src/config/entrypoint.sh

@@ -1,8 +1,7 @@
 #!/bin/bash
 RUN_PORT="8000"
-DATABASE=postgres
-SQL_HOST=postgresql
-SQL_PORT=5432
+
+export PATH=/opt/venv/bin:$PATH
 
 if [ "$DATABASE" = "postgres" ]
 then

+ 7 - 6
src/eventos/views.py

@@ -52,12 +52,12 @@ def reservar_evento(request, evento_id):
         cc_email = [settings.ADMIN_EMAIL]
 
         texto = f'Hola {request.user.nombre}, \n\n' \
-                    f'Te has inscrito correctamente en el evento "{evento.nombre}".\n' \
-                    f'Detalles del evento:\n' \
-                    f'Nombre: {evento.nombre}\n' \
-                    f'Descripción: {evento.descripcion}\n' \
-                    f'Fecha: {evento.fecha.strftime("%d/%b/%y")}  a las {evento.hora}\n' \
-                    f'\n¡Gracias por inscribirte!\n\n'
+                f'Te has inscrito correctamente en el evento "{evento.nombre}".\n' \
+                f'Detalles del evento:\n' \
+                f'Nombre: {evento.nombre}\n' \
+                f'Descripción: {evento.descripcion}\n' \
+                f'Fecha: {evento.fecha.strftime("%d/%b/%y")}  a las {evento.hora}\n' \
+                f'\n¡Gracias por inscribirte!\n\n'
 
         html_content = render_to_string('emails/confirmacion_reserva.html', {'evento': evento, 'usuario': request.user})
 
@@ -390,6 +390,7 @@ def estadisticas_por_usuario(request):
         'desde': filtro_fecha,
     })
 
+
 @login_required
 def eventos_por_usuario(request, usuario_id):
     usuario = get_object_or_404(User, pk=usuario_id)

+ 2 - 2
src/gestion_reservas/settings.py

@@ -15,7 +15,7 @@ import os
 import logging
 
 APP_NAME = "jugaralpadel.es"
-APP_VERSION = os.environ.get("APP_VERSION", "15.0.3")  # Valor por defecto si no está definido
+APP_VERSION = os.environ.get("APP_VERSION", "15.0.5")  # Valor por defecto si no está definido
 IMG_VERSION = os.environ.get("IMG_VERSION", "0.0.0-dev")  # Valor por defecto si no está definido
 
 MES_COMIENZO_TEMPORADA = int(os.getenv('MES_COMIENZO_TEMPORADA', '9'))  # valor por defecto: septiembre
@@ -153,7 +153,7 @@ THOUSAND_SEPARATOR = '.'
 
 STATIC_URL = 'static/'
 STATIC_ROOT = BASE_DIR / "staticfiles"
-STATICFILES_DIRS = [BASE_DIR / "eventos/static",]
+# STATICFILES_DIRS = [BASE_DIR / "eventos/static",]
 
 # Mediafiles
 MEDIA_ROOT = BASE_DIR / "mediafiles"

+ 2 - 1
src/gestion_reservas/views.py

@@ -72,7 +72,8 @@ def acerca_de(request):
     context = {
         "app_name": settings.APP_NAME,
         "app_version": settings.APP_VERSION,
-        "img_version": settings.IMG_VERSION
+        "img_version": settings.IMG_VERSION,
+        "comienzo_temporada": settings.MES_COMIENZO_TEMPORADA
     }
     return render(request, "acerca_de.html", context)
 

+ 6 - 0
src/importaDatos.sh

@@ -0,0 +1,6 @@
+./manage.py importar_usuarios mediafiles/usuarios.json 
+./manage.py importar_ayuda mediafiles/ayuda.json 
+./manage.py importar_noticias mediafiles/noticias.json 
+./manage.py importar_eventos mediafiles/eventos.json 
+./manage.py importar_reservas mediafiles/reservas.json 
+./manage.py importar_listaespera mediafiles/listaespera.json 

+ 1 - 0
src/templates/acerca_de.html

@@ -18,6 +18,7 @@
                     {% else %}
                         <li><strong>Versión de la imagen:</strong> {{ img_version }}</li>
                     {% endif %}
+                        <li><strong>Mes de comienzo de temporada:</strong> {{ comienzo_temporada }}</li>
 
                     </ul>
                 </div><!--//app-card-body-->