1
0
mirror of https://gitlab.crans.org/bde/nk20-scripts synced 2025-06-22 00:08:21 +02:00

Compare commits

1 Commits

Author SHA1 Message Date
abd5af9ad2 borg backup 2024-08-10 19:03:29 +02:00
8 changed files with 17 additions and 155 deletions

1
.gitignore vendored
View File

@ -33,6 +33,7 @@ coverage
# Local data # Local data
secrets.py secrets.py
*/.env_borg
*.log *.log
# Virtualenv # Virtualenv

View File

@ -6,7 +6,6 @@ from datetime import date
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.management import BaseCommand from django.core.management import BaseCommand
from member.models import Club, Membership from member.models import Club, Membership
from django.core.mail import send_mail
class Command(BaseCommand): class Command(BaseCommand):
@ -55,24 +54,10 @@ class Command(BaseCommand):
if options["type"] == "art": if options["type"] == "art":
nb=0 nb=0
emails = []
for user in User.objects.filter(profile__ml_art_registration=True).all(): for user in User.objects.filter(profile__ml_art_registration=True).all():
# self.stdout.write(user.email) self.stdout.write(user.email)
emails.append(user.email)
nb+=1 nb+=1
# self.stdout.write(str(nb)) self.stdout.write(str(nb))
subject = "Liste des abonnés à la newsletter BDA"
message = (
f"Voici la liste des utilisateurs abonnés à la newsletter BDA:\n\n"
+ "\n".join(emails)
+ f"\n\nTotal des abonnés : {nb}"
)
from_email = "Note Kfet 2020 <notekfet2020@crans.org>"
recipient_list = ["bda.ensparissaclay@gmail.com"]
send_mail(subject, message, from_email, recipient_list)
return return
if options["type"] == "sport": if options["type"] == "sport":

3
shell/.env_borg_example Normal file
View File

@ -0,0 +1,3 @@
BORG_PASSPHRASE='CHANGE_ME'
BORG_REPO='USER@SERVER:PATH'
BACKUP_FILE='PATH'

View File

@ -1,9 +1,14 @@
#!/bin/bash #!/bin/bash
export $(cat .env_borg | xargs)
# Create temporary backups directory # Create temporary backups directory
mkdir -p /tmp/note-backups mkdir -p /tmp/note-backups
date=$(date +%Y-%m-%d)
# Backup database and save it as tar archive # Backup database
sudo -u postgres pg_dump -F t note_db > "/tmp/note-backups/$date.sql" sudo -u postgres pg_dump -F t note_db > $BACKUP_FILE
# Compress backup as gzip
gzip "/tmp/note-backups/$date.sql" # Keep the last 30 backups
scp "/tmp/note-backups/$date.sql.gz" "club-bde@zamok.crans.org:backup/$date.sql.gz" borg prune --keep-last 30
# Save backup
borg create --compression lz4 ::backup-{now} $BACKUP_FILE

View File

@ -1,38 +0,0 @@
{% load getenv %}
{% load i18n %}
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Horaire du vote : {{ election_name}}</title>
</head>
<body>
<p>
Bonjour {{ user.first_name }} {{ user.last_name }},
</p>
<p>
Nous t'informons que le vote : {{ election_name }}, sera ouvert de {{ time_start }} jusqu'à
{{ time_end }}.
</p>
<p>
Tu peux voter autant de fois que tu le souhaites tant que le vote est ouvert.
</p>
<p>
Le vote se déroulera sur la plateforme Belenios accessible via ce lien : <a href="{{ lien }}">{{ lien }}</a>
</p>
<p>
Ce vote est organisé par l'Amicale des Élèves de l'École Normale Supérieure Paris-Saclay.
</p>
<p>
En espérant que tu exerceras ton droit,<br>
Le BDE<br>
{% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p>
</body>
</html>

View File

@ -1,17 +0,0 @@
{% load getenv %}
{% load i18n %}
Bonjour {{ user.first_name }} {{ user.last_name }},
Nous t'informons que le vote : {{ election_name }}, sera ouvert de {{ time_start }} jusqu'à {{ time_end }}.
Tu peux voter autant de fois que tu le souhaites tant que le vote est ouvert.
Le vote se déroulera sur la plateforme Belenios accessible via ce lien : {{ lien }}
Ce vote est organisé par l'Amicale des Élèves de l'École Normale Supérieure Paris-Saclay.
En espérant que tu exerceras ton droit,
Le BDE
{% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}

View File

@ -1,52 +0,0 @@
{% load getenv %}
{% load i18n %}
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Information : {{ election_name }})</title>
</head>
<body>
<p>
Bonjour {{ user.first_name }} {{ user.last_name }},
</p>
<p>
Ce mail t'est envoyé car tu es inscrit·e sur la liste électorale pour le vote suivant : {{ election_name }}
</p>
<p>
Le vote se déroulera sur la plateforme Belenios accessible via ce lien :
<a href="{{ lien }}">{{ lien }}</a>
</p>
<p>
Voici ton code d'électeur·ice pour pouvoir voter : {{ code_electeur }}
</p>
<p>
Une authentification par la Note Kfet (avec ta note : {{ user.username }}) sera nécessaire à la fin du vote pour le valider, si tu rencontres des problèmes pour réinitialiser ton mot de passe en cas d'oubli, n'hésites pas à envoyer un mail à
<a href="mailto:respo-info.bde@lists.crans.org">respo-info.bde@lists.crans.org</a>.
</p>
<p>
Ce vote est organisé par l'Amicale des Élèves de l'École Normale Supérieure Paris-Saclay.
</p>
<p>
Les personnes possédant une partie de la clé de déchiffrement sont :
<ul>
{% for a in autority %}
<li>{{ a }}</li>
{% endfor %}
</ul>
</p>
<p>
En espérant que tu exerceras ce droit,<br>
Le BDE<br>
{% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p>
</body>
</html>

View File

@ -1,25 +0,0 @@
{% load getenv %}
{% load i18n %}
Bonjour {{ user.first_name }} {{ user.last_name }},
Ce mail t'est envoyé car tu es inscrit·e sur la liste électorale pour le vote suivant : {{ election_name }}
Le vote se déroulera sur la plateforme Belenios accessible via ce lien : {{ lien }}
Voici ton code d'électeur·ice pour pouvoir voter : {{ code_electeur }}
Une authentification par la Note Kfet (avec ta note : {{ user.username }}) sera nécessaire à la fin du vote pour le valider, si tu rencontres des problèmes pour réinitialiser ton mot de passe en cas d'oubli, n'hésites pas à envoyer un mail à respo-info.bde@lists.crans.org.
Ce vote est organisé par l'Amicale des Élèves de l'École Normale Supérieure Paris-Saclay.
Les personnes possédant une partie de la clé de déchiffrement sont :
{% for a in autority %}
{{ a }}
{% endfor %}
En espérant que tu exerceras ce droit,
Le BDE
{% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}