mirror of
https://github.com/rjNemo/villafleurie
synced 2026-06-12 13:26:47 +00:00
added celery task queue
This commit is contained in:
parent
5f6a3f752e
commit
eea16b3eb0
11 changed files with 187 additions and 70 deletions
18
README.md
18
README.md
|
|
@ -29,15 +29,17 @@ Le visiteur doit pouvoir :
|
||||||
|
|
||||||
### Back-end
|
### Back-end
|
||||||
|
|
||||||
- `Django 3.0`
|
- `Django 3.0` python based web application
|
||||||
- `PostgreSQL`
|
- `PostgreSQL` object-relational database
|
||||||
|
- `Celery` asynchronous task queue
|
||||||
|
- `RabbitMQ` messaging broker
|
||||||
|
- `NginX` reverse-proxy & static files server
|
||||||
- `Docker`
|
- `Docker`
|
||||||
- `NginX`
|
|
||||||
- Google Calendar API
|
- Google Calendar API
|
||||||
|
|
||||||
### Hébergement
|
### Hébergement
|
||||||
|
|
||||||
- Virtual Private Server
|
- VPS on [Vultr](https://my.vultr.com/subs/?SUBID=32140017)
|
||||||
|
|
||||||
## Pages
|
## Pages
|
||||||
|
|
||||||
|
|
@ -98,8 +100,8 @@ Le visiteur doit pouvoir :
|
||||||
## TO DO
|
## TO DO
|
||||||
|
|
||||||
- Gestion du calendrier
|
- Gestion du calendrier
|
||||||
..\_ Tester la synchro avec Google calendar
|
- Tester la synchro avec Google calendar
|
||||||
..\_ Ajouter un date picker dans le formulaire de réservation, changer les placeholders (j'ai pas envie de jouer avec JQuery)
|
- Ajouter un date picker dans le formulaire de réservation, changer les placeholders (j'ai pas envie de jouer avec JQuery)
|
||||||
- Envoyer devis réservation par mail et notification aux hôtes (put it in a background process, personnaliser les htmails : contact, admin et réservation)
|
- Envoyer devis réservation par mail et notification aux hôtes (put it in a background process, personnaliser les htmails : contact, admin et réservation)
|
||||||
- Ajout page/module de paiement
|
- Ajout page/module de paiement
|
||||||
- ajouter les témoignages depuis Booking, AirBnb, ajouter le lien
|
- ajouter les témoignages depuis Booking, AirBnb, ajouter le lien
|
||||||
|
|
@ -117,8 +119,10 @@ Le visiteur doit pouvoir :
|
||||||
- Système de facturation: CRUD Réservations et envoi. Automatisation si possible
|
- Système de facturation: CRUD Réservations et envoi. Automatisation si possible
|
||||||
- Réservation page : Ajouter des photos. Renvoyer vers la page Location onClick sur Réserver TX. Proposer Upsells : navette + location voiture.
|
- Réservation page : Ajouter des photos. Renvoyer vers la page Location onClick sur Réserver TX. Proposer Upsells : navette + location voiture.
|
||||||
- Vider le contenu du folder root ?
|
- Vider le contenu du folder root ?
|
||||||
- Confirmation message contact envoyé
|
- Page confirmation message contact envoyé
|
||||||
|
- SSL certificate
|
||||||
|
|
||||||
## BUGS
|
## BUGS
|
||||||
|
|
||||||
- La synchro ne gère pas les heures dans le calendriers
|
- La synchro ne gère pas les heures dans le calendriers
|
||||||
|
- Bouton réserver dans la Navbar …
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ volumes:
|
||||||
|
|
||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: postgres
|
image: postgres:alpine
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: villafleurie
|
POSTGRES_USER: villafleurie
|
||||||
POSTGRES_DB: villafleurie
|
POSTGRES_DB: villafleurie
|
||||||
|
|
@ -16,7 +16,8 @@ services:
|
||||||
- dbdata:/var/lib/postgresql/data
|
- dbdata:/var/lib/postgresql/data
|
||||||
ports:
|
ports:
|
||||||
- 5432:5432
|
- 5432:5432
|
||||||
web:
|
|
||||||
|
web: &web
|
||||||
build: .
|
build: .
|
||||||
# command: bash -c "python manage.py migrate && python manage.py loaddata villafleurie.json && gunicorn -w 4 villafleurie.wsgi -b 0.0.0.0:8000"
|
# command: bash -c "python manage.py migrate && python manage.py loaddata villafleurie.json && gunicorn -w 4 villafleurie.wsgi -b 0.0.0.0:8000"
|
||||||
command: bash -c "python manage.py migrate && gunicorn -w 4 villafleurie.wsgi -b 0.0.0.0:8000"
|
command: bash -c "python manage.py migrate && gunicorn -w 4 villafleurie.wsgi -b 0.0.0.0:8000"
|
||||||
|
|
@ -28,7 +29,10 @@ services:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
- rabbitmq
|
||||||
|
- celery
|
||||||
env_file: prod.env
|
env_file: prod.env
|
||||||
|
|
||||||
nginx:
|
nginx:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
|
|
@ -40,3 +44,14 @@ services:
|
||||||
- media:/media
|
- media:/media
|
||||||
depends_on:
|
depends_on:
|
||||||
- web
|
- web
|
||||||
|
|
||||||
|
celery:
|
||||||
|
<<: *web
|
||||||
|
command: celery -A villafleurie worker --loglevel=info
|
||||||
|
ports: []
|
||||||
|
depends_on:
|
||||||
|
- rabbitmq
|
||||||
|
- db
|
||||||
|
|
||||||
|
rabbitmq:
|
||||||
|
image: rabbitmq:alpine
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
|
@ -1,12 +1,11 @@
|
||||||
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
from celery import shared_task
|
||||||
from django.core.mail import send_mail, mail_admins
|
from django.core.mail import send_mail, mail_admins
|
||||||
from villafleurie.settings import EMAIL_HOST_USER, BASE_DIR
|
from villafleurie.settings import EMAIL_HOST_USER, BASE_DIR
|
||||||
import os
|
import os
|
||||||
# from celery import Celery
|
|
||||||
|
|
||||||
# app = Celery('mailing', brocker='amqp://localhost/')
|
|
||||||
|
|
||||||
|
|
||||||
# @app.task
|
@shared_task
|
||||||
def send_confirmation_mail(name, email, template="ticket"):
|
def send_confirmation_mail(name, email, template="ticket"):
|
||||||
""" Send confirmation message to customer """
|
""" Send confirmation message to customer """
|
||||||
subject = "Nous avons reçu votre message"
|
subject = "Nous avons reçu votre message"
|
||||||
|
|
@ -25,6 +24,7 @@ def send_confirmation_mail(name, email, template="ticket"):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@shared_task
|
||||||
def send_notification(subject, name, message, template="activation"):
|
def send_notification(subject, name, message, template="activation"):
|
||||||
""" Send notification to admins """
|
""" Send notification to admins """
|
||||||
html_path = os.path.join(BASE_DIR, 'rental/templates/rental/html/')
|
html_path = os.path.join(BASE_DIR, 'rental/templates/rental/html/')
|
||||||
|
|
@ -38,6 +38,7 @@ def send_notification(subject, name, message, template="activation"):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@shared_task
|
||||||
def send_quotation(reservation):
|
def send_quotation(reservation):
|
||||||
""" Send quotation to customer """
|
""" Send quotation to customer """
|
||||||
name = reservation.guest.name
|
name = reservation.guest.name
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
{% extends 'rental/base.html' %} {% load static %} {% block content %}
|
||||||
|
|
||||||
|
<section class="intro-single">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 col-lg-8">
|
||||||
|
<div class="title-single-box">
|
||||||
|
<h1 class="title-single">Oups ! Il n'y a rien ici …</h1>
|
||||||
|
<span class="color-text-a">Merci pour votre visite </span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 col-lg-4">
|
||||||
|
<nav
|
||||||
|
aria-label="breadcrumb"
|
||||||
|
class="breadcrumb-box d-flex justify-content-lg-end"
|
||||||
|
>
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li class="breadcrumb-item">
|
||||||
|
<a href="{% url 'rental:index' %}">Accueil</a>
|
||||||
|
</li>
|
||||||
|
<li class="breadcrumb-item active" aria-current="page">
|
||||||
|
Non trouvé
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="property-summary">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="col-md-12 mb-1">
|
||||||
|
<img src="{% static 'rental/img/plan2.jpg' %}" alt="404 image" />
|
||||||
|
<a href="{% url 'rental:index' %}"
|
||||||
|
><button class="btn btn-a">Retour à l'accueil</button></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="icon-box-content">
|
<div class="icon-box-content">
|
||||||
<p class="mb-1">
|
<p class="mb-1">
|
||||||
✉️Email :
|
✉️ Email :
|
||||||
<span class="color-a"
|
<span class="color-a"
|
||||||
><a href="mailto:location.villafleurie@gmail.com"
|
><a href="mailto:location.villafleurie@gmail.com"
|
||||||
>location.villafleurie@gmail.com</a
|
>location.villafleurie@gmail.com</a
|
||||||
|
|
@ -80,7 +80,7 @@
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
<p class="mb-1">
|
<p class="mb-1">
|
||||||
📞Téléphone :
|
📞 Téléphone :
|
||||||
<span class="color-a"
|
<span class="color-a"
|
||||||
><a href="tel:0698267634">06 98 26 76 34</a></span
|
><a href="tel:0698267634">06 98 26 76 34</a></span
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -1,83 +1,118 @@
|
||||||
{% extends 'rental/base.html'%}
|
{% extends 'rental/base.html'%} {% load static %} {% block content %}
|
||||||
{% load static %}
|
|
||||||
|
|
||||||
{% block content %}
|
<section class="intro-single">
|
||||||
|
<div class="container">
|
||||||
<!--/ Intro Single star /-->
|
<div class="row">
|
||||||
<section class="intro-single">
|
<div class="col-md-12 col-lg-8">
|
||||||
<div class="container">
|
<div class="title-single-box">
|
||||||
<div class="row">
|
<h1 class="title-single">Réservation</h1>
|
||||||
<div class="col-md-12 col-lg-8">
|
<span class="color-text-a"
|
||||||
<div class="title-single-box">
|
>Vous souhaiter effectuer une demande de réservation ? Vous avez des
|
||||||
<h1 class="title-single">Réservation</h1>
|
questions, des suggestions d’amélioration ou des commentaires ?
|
||||||
<span class="color-text-a">Vous souhaiter effectuer une demande de réservation ?
|
<br />Laissez-nous un message !</span
|
||||||
Vous avez des questions, des suggestions d’amélioration ou des commentaires ?
|
>
|
||||||
<br>Laissez-nous un message !</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-12 col-lg-4">
|
|
||||||
<nav aria-label="breadcrumb" class="breadcrumb-box d-flex justify-content-lg-end">
|
|
||||||
<ol class="breadcrumb">
|
|
||||||
<li class="breadcrumb-item">
|
|
||||||
<a href="{% url 'rental:index' %}">Accueil</a>
|
|
||||||
</li>
|
|
||||||
<li class="breadcrumb-item active" aria-current="page">
|
|
||||||
Réservation
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-12 col-lg-4">
|
||||||
|
<nav
|
||||||
|
aria-label="breadcrumb"
|
||||||
|
class="breadcrumb-box d-flex justify-content-lg-end"
|
||||||
|
>
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li class="breadcrumb-item">
|
||||||
|
<a href="{% url 'rental:index' %}">Accueil</a>
|
||||||
|
</li>
|
||||||
|
<li class="breadcrumb-item active" aria-current="page">
|
||||||
|
Réservation
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
<!--/ Intro Single End /-->
|
</section>
|
||||||
|
|
||||||
<section class="property-single nav-arrow-b">
|
|
||||||
<div class="container">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<p><strong>Réservez</strong> votre séjour au coeur de la station balnéaire du Gosier à deux pas des plages à un tarif sympa<strong>.</strong></p>
|
|
||||||
<p >Notre établissement propose à la location un <strong><a href="/T2/">cosy T2</a></strong> et un <strong><a href="/T3/">spacieux T3</a></strong>. Il est <strong>idéalement situé</strong> dans le bourg du Gosier. Ainsi profitez des <strong>plages et activités</strong> de la dynamique et chaleureuse ville du Gosier tout en bénéficiant du <strong>calme</strong> nécessaire à vos séances de <i>farniente.</i></p>
|
|
||||||
<p ><strong>Excellent rapport qualité/prix</strong> et une situation géographique qui convient parfaitement aux <strong>séjours touristiques et d’affaires</strong>.<br>Possibilité de location mensuelle de moins de 4 mois à tarifs dégressifs.</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
<section class="property-single nav-arrow-b">
|
||||||
|
<div class="container">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<p>
|
||||||
|
<strong>Réservez</strong> votre séjour au coeur de la station
|
||||||
|
balnéaire du Gosier à deux pas des plages à un tarif sympa<strong
|
||||||
|
>.</strong
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Notre établissement propose à la location un
|
||||||
|
<strong><a href="/T2/">cosy T2</a></strong> et un
|
||||||
|
<strong><a href="/T3/">spacieux T3</a></strong
|
||||||
|
>. Il est <strong>idéalement situé</strong> dans le bourg du Gosier.
|
||||||
|
Ainsi profitez des <strong>plages et activités</strong> de la dynamique
|
||||||
|
et chaleureuse ville du Gosier tout en bénéficiant du
|
||||||
|
<strong>calme</strong> nécessaire à vos séances de <i
|
||||||
|
>farniente.</i
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<strong>Excellent rapport qualité/prix</strong> et une situation
|
||||||
|
géographique qui convient parfaitement aux
|
||||||
|
<strong>séjours touristiques et d’affaires</strong>.<br />Possibilité de
|
||||||
|
location mensuelle de moins de 4 mois à tarifs dégressifs.
|
||||||
|
</p>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 col-lg-6">
|
<div class="col-md-6 col-lg-6">
|
||||||
<div class="title-box-d">
|
<div class="title-box-d">
|
||||||
<h2 class="title-d">Tarifs T2</h2>
|
<h2 class="title-d">Tarifs T2</h2>
|
||||||
</div>
|
</div>
|
||||||
<ul >
|
<ul>
|
||||||
<li>55 € la nuit</li>
|
<li>55 € la nuit</li>
|
||||||
<li>350 € la semaine (au lieu de 385 €)</li>
|
<li>350 € la semaine (au lieu de 385 €)</li>
|
||||||
<li>645 € pour 2 semaines (au lieu de 825 €)</li>
|
<li>645 € pour 2 semaines (au lieu de 825 €)</li>
|
||||||
<li>960 € le mois (au lieu de 1650 €)</li>
|
<li>960 € le mois (au lieu de 1650 €)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><a href="#reservation"><button class="btn btn-a">Réserver le Cosy T2</button></a></p>
|
<p>
|
||||||
|
<a href="#reservation"
|
||||||
|
><button class="btn btn-a">Réserver le Cosy T2</button></a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 col-lg-6">
|
<div class="col-md-6 col-lg-6">
|
||||||
<div class="title-box-d">
|
<div class="title-box-d">
|
||||||
<h2 class="title-d">Tarifs T3</h2>
|
<h2 class="title-d">Tarifs T3</h2>
|
||||||
</div>
|
</div>
|
||||||
<ul >
|
<ul>
|
||||||
<li>60 € la nuit</li>
|
<li>60 € la nuit</li>
|
||||||
<li>385 € la semaine (au lieu de 420 €)</li>
|
<li>385 € la semaine (au lieu de 420 €)</li>
|
||||||
<li>705 € pour 2 semaines (au lieu de 900 €)</li>
|
<li>705 € pour 2 semaines (au lieu de 900 €)</li>
|
||||||
<li>1050 € le mois (au lieu de 1800 €)</li>
|
<li>1050 € le mois (au lieu de 1800 €)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><a href="#reservation"><button class="btn btn-a">Réserver le Spacieux T3</button></a></p>
|
<p>
|
||||||
|
<a href="#reservation"
|
||||||
|
><button class="btn btn-a">Réserver le Spacieux T3</button></a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Vous êtes intéressés ? <br/>Vérifiez les disponibilités à l'aide du calendrier ci-contre et en bas de page.</p>
|
<p>
|
||||||
|
Vous êtes intéressés ? <br />Vérifiez les disponibilités à l'aide du
|
||||||
|
calendrier ci-contre et en bas de page.
|
||||||
|
</p>
|
||||||
|
|
||||||
<hr>
|
<hr />
|
||||||
<p ><em>Les tarifs ci-dessus concernent une réservation pour <strong>2 personnes</strong>. <br/> Prévoir un coût additionnel de <strong>15 € par personnes</strong> au-delà de 2 personnes. <br/>Les enfant bénéficient d'un tarif préférentiel, <strong>5 €</strong> seulement par <strong>enfant de moins de 10 ans</strong>.</em></p>
|
<p>
|
||||||
|
<em
|
||||||
|
>Les tarifs ci-dessus concernent une réservation pour
|
||||||
|
<strong>2 personnes</strong>. <br />
|
||||||
|
Prévoir un coût additionnel de
|
||||||
|
<strong>15 € par personnes</strong> au-delà de 2 personnes. <br />Les
|
||||||
|
enfant bénéficient d'un tarif préférentiel,
|
||||||
|
<strong>5 €</strong> seulement par
|
||||||
|
<strong>enfant de moins de 10 ans</strong>.</em
|
||||||
|
>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
{% include 'rental/reservation_form.html' %} {% endblock %}
|
||||||
{% include 'rental/reservation_form.html' %}
|
|
||||||
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ from .forms import ReservationForm, ContactForm
|
||||||
from django.db import IntegrityError
|
from django.db import IntegrityError
|
||||||
from rental.pricing import get_reservation_price
|
from rental.pricing import get_reservation_price
|
||||||
from rental.bookings import check_availability, synchronize_calendars, update_calendar
|
from rental.bookings import check_availability, synchronize_calendars, update_calendar
|
||||||
from rental.mailing import send_confirmation_mail, send_notification, send_quotation
|
from rental.tasks import send_confirmation_mail, send_notification, send_quotation
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
|
|
@ -123,8 +123,8 @@ def reservation(request):
|
||||||
end=end,
|
end=end,
|
||||||
price=price
|
price=price
|
||||||
)
|
)
|
||||||
send_quotation(reservation)
|
send_quotation.delay(reservation)
|
||||||
update_calendar(reservation)
|
update_calendar(reservation) # add to celery tasks too
|
||||||
context = {
|
context = {
|
||||||
'reservation': reservation
|
'reservation': reservation
|
||||||
}
|
}
|
||||||
|
|
@ -166,8 +166,8 @@ def contact(request):
|
||||||
subject = form.cleaned_data['subject']
|
subject = form.cleaned_data['subject']
|
||||||
message = form.cleaned_data['message']
|
message = form.cleaned_data['message']
|
||||||
|
|
||||||
send_confirmation_mail(name, email)
|
send_confirmation_mail.delay(name, email)
|
||||||
send_notification(subject, name, message)
|
send_notification.delay(subject, name, message)
|
||||||
else:
|
else:
|
||||||
form = ContactForm()
|
form = ContactForm()
|
||||||
context = {'form': form}
|
context = {'form': form}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
from .celery import app as celery_app
|
||||||
|
|
||||||
|
__all__ = ('celery_app',)
|
||||||
14
villafleurie/celery.py
Normal file
14
villafleurie/celery.py
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
import os
|
||||||
|
from celery import Celery
|
||||||
|
|
||||||
|
|
||||||
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'villafleurie.settings')
|
||||||
|
app = Celery('villafleurie')
|
||||||
|
app.config_from_object('django.conf:settings', namespace='CELERY')
|
||||||
|
app.autodiscover_tasks()
|
||||||
|
|
||||||
|
|
||||||
|
@app.task(bind=True)
|
||||||
|
def debug_task(self):
|
||||||
|
print('Request: {0!r}'.format(self.request))
|
||||||
|
|
@ -137,7 +137,6 @@ USE_TZ = True
|
||||||
STATIC_URL = '/static/'
|
STATIC_URL = '/static/'
|
||||||
STATIC_ROOT = "/static_files/"
|
STATIC_ROOT = "/static_files/"
|
||||||
|
|
||||||
# MEDIA_ROOT = os.path.join(BASE_DIR, "media")
|
|
||||||
MEDIA_URL = '/media/'
|
MEDIA_URL = '/media/'
|
||||||
MEDIA_ROOT = '/media/'
|
MEDIA_ROOT = '/media/'
|
||||||
|
|
||||||
|
|
@ -148,3 +147,5 @@ EMAIL_SUBJECT_PREFIX = "[VillaFleurieGuadeloupe] "
|
||||||
DEFAULT_FROM_EMAIL = "'Nilka, VillaFleurie' <location.villaFleurie@gmail.com>"
|
DEFAULT_FROM_EMAIL = "'Nilka, VillaFleurie' <location.villaFleurie@gmail.com>"
|
||||||
EMAIL_HOST_USER = "location.villafleurie@gmail.com"
|
EMAIL_HOST_USER = "location.villafleurie@gmail.com"
|
||||||
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
|
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
|
||||||
|
|
||||||
|
CELERY_BROKER_URL = "amqp://rabbitmq"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue