Initial commit

This commit is contained in:
Claude Paroz 2025-07-08 20:37:02 +02:00
commit a961619d08
21 changed files with 413 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
db.sqlite3
__pycache__

0
beesgospel/__init__.py Normal file
View file

View file

@ -0,0 +1,64 @@
@font-face {
font-family:"Harlow Solid";
src: url("../fonts/harlow-solid-regular.ttf");
}
body {
color: #fff;
background: #333;
overflow-x: hidden;
}
a {
color: #ffab82;
}
nav {
border-bottom: 5px solid red;
}
.nav-link.active {
border-bottom: 1px solid red;
}
.nav-sep {
margin-top: 0.5em;
color: #d77070;
}
@media only screen and (max-width : 992px) {
.nav-sep { display: none; }
.navbar-brand img { max-width: 5em; }
.hometitle { font-size: 280%; }
}
.alert-danger { background-color: #FFD79C; }
.main-text { max-width: 100vw; }
.red-bottom { border-bottom: 1px solid red; }
.overleft { margin-left: -4rem; }
.overright { margin-right: -4rem; }
.harlow { font-family: "Harlow Solid"; }
.homeurl { color: white; text-decoration: none; }
.homeurl:hover { color: lightgrey; }
.homediv {
margin-top: -1.5rem;
padding-top: 8rem;
min-height: 700px;
background-image: url("../img/photo_contact_back.webp");
background-position-x: center;
background-repeat: no-repeat;
}
.hometitle {
font-size: 320%;
padding-bottom: 6rem;
}
.#homeaudio audio { opacity: 0.7; }
.home-img {
width: 600px;
max-width: 100%;
border: 2px solid white;
}
.bottom-red {
border-bottom: 1px solid #c42626;
padding-bottom: 0.2em;
margin-bottom: 0.5em;
}
.left-red {
border-left: 2px solid red;
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

0
common/__init__.py Normal file
View file

16
common/asgi.py Normal file
View file

@ -0,0 +1,16 @@
"""
ASGI config for beesgospel project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/5.2/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'beesgospel.settings')
application = get_asgi_application()

113
common/settings.py Normal file
View file

@ -0,0 +1,113 @@
"""
Django settings for beesgospel project.
"""
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / "subdir".
BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = "django-insecure-c9p_1ckesz8!6))(#n2hio16*_8_-nv8n@9n*od8kqoufiq13h"
# SECURITY WARNING: don"t run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"beesgospel",
]
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
ROOT_URLCONF = "common.urls"
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [BASE_DIR / "templates"],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
"builtins": [
"django.templatetags.static",
],
},
},
]
WSGI_APPLICATION = "common.wsgi.application"
# Database
# https://docs.djangoproject.com/en/5.2/ref/settings/#databases
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
}
}
# Password validation
# https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
},
{
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
},
{
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
},
{
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
},
]
# Internationalization
# https://docs.djangoproject.com/en/5.2/topics/i18n/
LANGUAGE_CODE = "fr"
TIME_ZONE = "UTC"
USE_I18N = False
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.2/howto/static-files/
STATIC_URL = "static/"
# Default primary key field type
# https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field
#DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"

10
common/urls.py Normal file
View file

@ -0,0 +1,10 @@
from django.contrib import admin
from django.urls import path
from django.views.generic import TemplateView
urlpatterns = [
path("admin/", admin.site.urls),
path("", TemplateView.as_view(template_name="index.html"), name="home"),
path("presentation/", TemplateView.as_view(template_name="presentation.html"), name="presentation"),
path("contact/", TemplateView.as_view(template_name="contact.html"), name="contact"),
]

16
common/wsgi.py Normal file
View file

@ -0,0 +1,16 @@
"""
WSGI config for beesgospel project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/5.2/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'beesgospel.settings')
application = get_wsgi_application()

22
manage.py Executable file
View file

@ -0,0 +1,22 @@
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'common.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()

44
templates/base.html Normal file
View file

@ -0,0 +1,44 @@
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Le Gospel de lAbeille - Bee's Gospel</title>
<link href="{% static 'vendor/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'css/main.css' %}" rel="stylesheet">
<script src="{% static 'vendor/bootstrap.bundle.min.js' %}"></script>
</head>
<body>
{% block header %}
<nav class="navbar navbar-expand-lg bg-dark border-bottom border-body sticky-top" data-bs-theme="dark">
<div class="container-fluid">
<div class="navbar-brand d-flex align-items-center"><a href="/">
<img src="{% static 'img/abeille.png' %}"></a>
<div class="harlow">Gospel de lAbeille<br>The Bee's Gospel Singers</div>
</div>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarColor01"
aria-controls="navbarColor01" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarColor01">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item"><a class="nav-link{% if request.path == "/presentation/"%} active{% endif %}" aria-current="page" href="{% url 'presentation' %}">Présentation</a></li>
<li class="nav-sep"></li>
<li class="nav-item"><a class="nav-link{% if request.path == "/contact/" %} active{% endif %}" href="{% url 'contact' %}">Contact</a></li>
<li class="nav-sep"></li>
<li class="nav-item"><a class="nav-link" href="#">Agenda</a></li>
<li class="nav-sep"></li>
<li class="nav-item"><a class="nav-link" href="#">Médias</a></li>
<li class="nav-sep"></li>
<li class="nav-item"><a class="nav-link" href="#">Espace membres</a></li>
</ul>
</div>
</div>
</nav>
{% endblock header %}
<div class="container mt-4">
{% block content %}{% endblock %}
</div>
</body>
</html>

53
templates/contact.html Normal file
View file

@ -0,0 +1,53 @@
{% extends "base.html" %}
{% block content %}
<div class="row">
<div class="col-md-6 mt-4 left-red">
<h3>Président</h3>
<p>Eric Develey<br>
Stavay-Mollondin 15<br>
CH-2300 La Chaux-de-Fonds
</p>
<p>+41 79 425 24 55<br>
<a href="mailto:edeveley@bluewin.ch">edeveley@bluewin.ch</a>
</p>
</div>
<div class="col-md-6 mt-4 left-red">
<h3>Cheffe de cœur</h3>
<p>Nicole Jaquet Henry<br>
Chapeau-Râblé 25<br>
CH-2300 La Chaux-de-Fonds
</p>
<p>+41 78 820 05 38<br>
<a href="mailto:njaquethenry@gmail.com">njaquethenry@gmail.com</a>
</p>
</div>
</div>
<p class="mt-5">Cette chorale vit grâce aux cotisations de ses membres et grâce aux cachets reçus lors des concerts.</p>
<p>Également soutenue financièrement par la paroisse réformée de la Chaux-de-Fonds, elle participe à plusieurs services religieux chaque année.</p>
<div class="row">
<div class="col-md-6">
<p>Si vous souhaitez nous soutenir, merci de faire vos dons à :</p>
<p class="ms-5 ps-3 left-red">
<code>Banque Raiffeisen, 9001 St-Gallen<br>
IBAN : CH82 8080 8008 1541 0361 4</code><br>
Au nom de :<br>
The Bees Gospel Singers, Gospel de lAbeille<br>
Jean-Charles COGNET (trésorier)<br>
Le Breuillet 1<br>
2056 Dombresson
</p>
</div>
<div class="col-md-6">
<img class="home-img" src="{% static 'img/photo_contact.jpg' %}">
</div>
</div>
{% endblock %}

27
templates/index.html Normal file
View file

@ -0,0 +1,27 @@
{% extends "base.html" %}
{% block header %}{% endblock %}
{% block content %}
<div class="homediv">
<div class="hometitle text-center">
<a class="homeurl harlow" href="{% url 'presentation' %}">
<div class="d-flex justify-content-center mb-4">
<div class="flex-grow-1 overleft red-bottom">&nbsp;</div>
<div class="main-text red-bottom">The Bees Gospel Singers</div>
<div class="flex-grow-1 overright">&nbsp;</div>
</div>
<div class="d-flex justify-content-center">
<div class="flex-grow-1 overleft">&nbsp;</div>
<div class="main-text red-bottom">Gospel de lAbeille</div>
<div class="flex-grow-1 overright red-bottom">&nbsp;</div>
</div>
</a>
</div>
</div>
<div id="homeaudio" class="d-flex justify-content-center">
<div class="text-start">
<i>Écouter:</i><br>
<audio controls src="{% static 'songs/WeShallOvercome.mp3' %}"></audio>
</div>
</div>
{% endblock %}

View file

@ -0,0 +1,34 @@
{% extends "base.html" %}
{% block content %}
<div class="row">
<div class="col-md-6">
<p><big>Le Gospel de lAbeille, ou The Bee's Gospel Singers est un groupe d'amoureux de cette musique multiculturelle qui souhaite faire partager son plaisir et son émotion avec le public.</big></p>
<div class="alert alert-danger mt-4">Prochain concert: <b>dim. 29 juin à 09:45</b>, Temple St-Jean La Chaux-de-Fonds<br>culte paroissial accompagné du Bee's Gospel Singers</div>
</div>
<div class="col-md-6">
<div class="text-center">
<img class="home-img" src="{% static 'img/photo_braderie_2019.jpg' %}">
</div>
</div>
</div>
<p class="mt-3">Ce groupe a la particularité de réunir une trentaine de chanteurs amateurs, chantant à 4 voix, en anglais, par cœur, sans amplification, et… juste pour le plaisir et lémotion.</p>
<p>Il est ouvert à toutes les personnes amoureuses du Gospel et du Negro Spiritual, quelles aient une appartenance religieuse ou non.<br>
Les répétitions ont lieu le mercredi soir de 18h30 à 20h30 (à lexception des vacances scolaires) au temple St-Jean de La Chaux-de-Fonds.</p>
<p>Le Gospel de lAbeille se produit régulièrement en concerts publics ou privés (cérémonies de mariages, anniversaires, décès,...) en Suisse et à l'Etranger.</p>
<h3 class="bottom-red mt-4">Historique</h3>
<p>En lan 2000, le pasteur camerounais Daniel Mabongo, actif dans la paroisse réformée de lAbeille de la Chaux-de-Fonds lance lidée auprès de ses paroissiens de la création dun groupe de chant Gospel pour animer certains cultes.</p>
<p>Dès 2001, un directeur professionnel est engagé en la personne de M. Christophe Haug.</p>
<p>La notoriété auprès du public est rapidement au rendez-vous et, le nombre de choristes augmentant, il devient nécessaire de sadjoindre les services dun pianiste daccompagnement.</p>
<p>Dès octobre 2002, Eric Develey, musicien amateur et enthousiaste, se met aux claviers et au service de léquipe désormais nommée «The Bees Gospel Singers».</p>
<p>En mai 2010, la direction du groupe est confiée à Mme Nicole Jaquet Henry, cantatrice et professeur de chant,
experte passionnée de Gospel et de Negro Spiritual.</p>
{% endblock %}