Skip to content
GitLab
Explore
Sign in
Commits on Source (5)
Refactor the script to extract the mails that are registered to an events mailing list
· 0107dd0a
ynerant
authored
Sep 08, 2020
0107dd0a
Backups are sent to Zamok
· 7e27c3b7
ynerant
authored
Sep 08, 2020
7e27c3b7
Note account has a special treatment in potential future NK15 import (compatibility commit)
· 84be9d00
ynerant
authored
Oct 20, 2020
84be9d00
The note account must be active in order to have access to the Rest Framework API
· 654492f9
ynerant
authored
Oct 20, 2020
654492f9
Export JS translation files as static files
· dbe7bf65
ynerant
authored
Nov 16, 2020
dbe7bf65
Hide whitespace changes
Inline
Side-by-side
management/commands/compilejsmessages.py
0 → 100644
View file @
dbe7bf65
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
import
os
from
django.conf
import
settings
from
django.core.management.base
import
BaseCommand
from
django.utils
import
translation
from
django.views.i18n
import
JavaScriptCatalog
class
Command
(
BaseCommand
):
"""
Generate Javascript translation files
"""
def
add_arguments
(
self
,
parser
):
parser
.
add_argument
(
'
--out
'
,
'
-o
'
,
type
=
str
,
default
=
'
static
'
,
help
=
'
Output directory, where static files are.
'
)
def
handle
(
self
,
*
args
,
**
kwargs
):
for
code
,
_
in
settings
.
LANGUAGES
:
if
code
==
settings
.
LANGUAGE_CODE
:
continue
self
.
stdout
.
write
(
f
"
Generate
{
code
}
javascript localization file
"
)
with
translation
.
override
(
code
):
resp
=
JavaScriptCatalog
().
get
(
None
,
packages
=
"
member+note
"
)
if
not
os
.
path
.
isdir
(
kwargs
[
"
out
"
]
+
"
/js/jsi18n
"
):
os
.
makedirs
(
kwargs
[
"
out
"
]
+
"
/js/jsi18n
"
)
with
open
(
kwargs
[
"
out
"
]
+
f
"
/js/jsi18n/
{
code
}
.js
"
,
"
wb
"
)
as
f
:
f
.
write
(
resp
.
content
)
management/commands/extract_ml_registrations.py
0 → 100644
View file @
dbe7bf65
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
from
datetime
import
date
from
django.contrib.auth.models
import
User
from
django.core.management
import
BaseCommand
from
django.db.models
import
Q
from
member.models
import
Membership
,
Club
from
wei.models
import
WEIClub
class
Command
(
BaseCommand
):
help
=
"
Get mailing list registrations from the last wei.
"
\
"
Usage: manage.py extract_ml_registrations -t {events,art,sport} -t {fr, en}.
"
\
"
You can write this into a file with a pipe, then paste the document into your mail manager.
"
def
add_arguments
(
self
,
parser
):
parser
.
add_argument
(
'
--type
'
,
'
-t
'
,
choices
=
[
"
members
"
,
"
clubs
"
,
"
events
"
,
"
art
"
,
"
sport
"
],
default
=
"
members
"
,
help
=
'
Select the type of the mailing list (default members)
'
)
parser
.
add_argument
(
'
--lang
'
,
'
-l
'
,
type
=
str
,
choices
=
[
'
fr
'
,
'
en
'
],
default
=
'
fr
'
,
help
=
'
Select the registred users of the ML of the given language. Useful only for the
'
'
events mailing list.
'
)
def
handle
(
self
,
*
args
,
**
options
):
# TODO: Improve the mailing list extraction system, and link it automatically with Mailman.
if
options
[
"
type
"
]
==
"
members
"
:
for
membership
in
Membership
.
objects
.
filter
(
club__name
=
"
BDE
"
,
date_start__lte
=
date
.
today
(),
date_end__gte
=
date
.
today
(),
).
all
():
self
.
stdout
.
write
(
membership
.
user
.
email
)
return
if
options
[
"
type
"
]
==
"
clubs
"
:
for
club
in
Club
.
objects
.
all
():
self
.
stdout
.
write
(
club
.
email
)
return
# Get the list of mails that want to be registered to the events mailing list.
# Don't filter to valid members, old members can receive these mails as long as they want.
if
options
[
"
type
"
]
==
"
events
"
:
for
user
in
User
.
objects
.
filter
(
profile__ml_events_registration
=
options
[
"
lang
"
]).
all
():
self
.
stdout
.
write
(
user
.
email
)
return
if
options
[
"
type
"
]
==
"
art
"
:
for
user
in
User
.
objects
.
filter
(
profile__ml_art_registration
=
True
).
all
():
self
.
stdout
.
write
(
user
.
email
)
return
if
options
[
"
type
"
]
==
"
sport
"
:
for
user
in
User
.
objects
.
filter
(
profile__ml_sport_registration
=
True
).
all
():
self
.
stdout
.
write
(
user
.
email
)
return
management/commands/import_account.py
View file @
dbe7bf65
...
...
@@ -114,6 +114,11 @@ class Command(ImportCommand):
else
:
passwd_nk15
=
''
# Note account should have no password and be active
if
int
(
row
[
"
idbde
"
])
==
3508
:
passwd_nk15
=
"
ipbased$127.0.0.1
"
row
[
"
bloque
"
]
=
False
if
row
[
"
idbde
"
]
not
in
MAP_IDBDE_PROMOTION
:
# NK12 bug. Applying default values
MAP_IDBDE_PROMOTION
[
row
[
"
idbde
"
]]
=
{
"
promo
"
:
2014
,
...
...
management/commands/import_transaction.py
View file @
dbe7bf65
...
...
@@ -316,6 +316,12 @@ class Command(ImportCommand):
)
bulk_mgr
.
done
()
# Note account has a different treatment
for
m
in
Membership
.
objects
.
filter
(
user_username
=
"
note
"
).
all
():
m
.
date_end
=
"
3142-12-12
"
m
.
roles
.
set
([
20
])
# PC Kfet role
m
.
save
()
@timed
@transaction.atomic
def
import_remittances
(
self
,
cur
,
chunk_size
):
...
...
shell/backup_db
View file @
dbe7bf65
#!/bin/bash
# Create backups directory
[[
-d
/
var/www/note_kfet/
backups
]]
||
(
mkdir
/
var/www/note_kfet/backups
&&
chown
www-data:www-data /var/www/note_kfet/
backups
)
# Create
temporary
backups directory
[[
-d
/
tmp/note-
backups
]]
||
mkdir
/
tmp/note-
backups
date
=
$(
date
+%Y-%m-%d
)
# Backup database and save it as tar archive
su postgres
-c
"pg_dump -F t note_db"
|
tee
"/
var/www/note_kfet/
backups/
$date
.tar"
>
/dev/null
su postgres
-c
"pg_dump -F t note_db"
|
tee
"/
tmp/note-
backups/
$date
.tar"
>
/dev/null
# Compress backup as gzip
gzip
"/var/www/note_kfet/backups/
$date
.tar"
chown
www-data:www-data
"/var/www/note_kfet/backups/
$date
.tar.gz"
# Delete backups that have more than 30 days
find /var/www/note_kfet/backups
-type
f
-mtime
+30
-exec
rm
{}
\;
\ No newline at end of file
gzip
"/tmp/note-backups/
$date
.tar"
scp
"/tmp/note-backups/
$date
.tar.gz"
"club-bde@zamok.crans.org:backup/
$date
.tar.gz"