Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Georges Gressot
eplouribounistra
Commits
1db170e0
Commit
1db170e0
authored
Nov 02, 2021
by
Georges Gressot
💬
Browse files
prepa merge multi in master
parent
bebea574
Changes
8
Hide whitespace changes
Inline
Side-by-side
Doc/User_Documentation.odt
View file @
1db170e0
No preview for this file type
README.md
View file @
1db170e0
...
...
@@ -33,7 +33,8 @@ Voir une illustration : https://seafile.unistra.fr/f/163d60a568e2482092e3/
15.
internationalisation (anglais et allemand en cours, extension possible à d'autres langues),
16.
formulaires de contact de l'administrateur de l'instance et du développeur,
17.
possibilité d'exporter les principales listes au format csv,
18.
gestion autonome du mot de passe.
18.
gestion autonome du mot de passe,
19.
réglage privé / public pour les simples consultations.
# Démo :
...
...
README_en.md
View file @
1db170e0
...
...
@@ -31,7 +31,8 @@ See illustration here : https://seafile.unistra.fr/f/163d60a568e2482092e3/
15.
internationalization (English and German in progress, possible extension to other languages),
16.
contact forms : to contact either the webmaster(s) or the developer(s),
17.
csv export for the main lists,
18.
autonomous password management.
18.
autonomous password management,
19.
private / public setting for simple edition.
# Démo :
...
...
Versions.txt
View file @
1db170e0
...
...
@@ -30,6 +30,8 @@ Version 2.00 (Chimnechilde) 2021.07.09
Version 2.01 (~Bathilde) beta
Version 2.02 (Bilichilde) 2021.10.21
Version 2.03 (~Chrothildis) beta
Version 2.04 (Bertrada) 2021.11.02
Version 2.05 (~Himiltrude) beta
(Next names following https://fr.wikipedia.org/wiki/Liste_des_reines_et_imp%C3%A9ratrices_de_France from Basina)
...
...
@@ -40,6 +42,7 @@ Dernières nouveautés (* = important) :
* possibilité de s'abonner à des listes pour être tenu au courant
* routage de retour aux listes
* alertes possibles non seulement pour les instructions mais aussi pour le positionnement, les arbitrages et les résultantes
* ajout du mode d'édition privé
* mise à jour du manuel utilisateur
Version 2 : Version multi-projets (beta tant qu'elle n'est pas testée grandeur nature ...)
...
...
eplouribousse/apps/epl/templates/epl/globadm.html
View file @
1db170e0
...
...
@@ -39,7 +39,7 @@
<button><a
href=
"/default/csv/uters"
>
{% trans "Extraction des utilisateurs" %}
</a>
*
</button></center></p>
</br></br>
<p><center>
* : {% trans "Pour
d'
éventuels contacts" %}
</center></p>
* : {% trans "Pour
vérifications et
éventuels contacts" %}
</br></br>
</div>
...
...
eplouribousse/apps/epl/views.py
View file @
1db170e0
#
epl_version ="v2.0
2
(B
ilichilde
)"
#
date_version ="
Octo
ber 2
1
, 2021"
epl_version
=
"v2.0
4
(B
ertrada
)"
date_version
=
"
Novem
ber 2, 2021"
# Mise au niveau de :
epl_version
=
"v2.0
3.2 (~Chrothildis
)"
date_version
=
"
Octo
ber
2
2, 2021"
#
epl_version ="v2.0
5.0 (~Himiltrude
)"
#
date_version ="
Novem
ber 2, 2021"
from
django.shortcuts
import
render
...
...
eplouribousse/apps/epl/views_csv.py
View file @
1db170e0
...
...
@@ -8,6 +8,7 @@ from django.contrib.auth.decorators import login_required
from
django.contrib
import
messages
from
.views
import
selectbdd
from
.decorators
import
edmode7
from
datetime
import
datetime
@
edmode7
def
simple_csv
(
request
,
bdd
,
lid
,
xlid
,
recset
,
what
,
length
):
...
...
@@ -108,6 +109,7 @@ def simple_csv(request, bdd, lid, xlid, recset, what, length):
return
response
@
login_required
def
uters_csv
(
request
):
...
...
@@ -118,64 +120,88 @@ def uters_csv(request):
messages
.
info
(
request
,
_
(
"Vous avez été renvoyé à cette page parce que vous n'avez pas les droits d'accès à la page que vous demandiez"
))
return
selectbdd
(
request
)
filename
=
'alluters.csv'
host
=
str
(
request
.
get_host
())
adesso
=
str
(
datetime
.
now
())
filename
=
'allusers_'
+
host
+
'_'
+
adesso
+
'_'
+
'_.csv'
# Create the HttpResponse object with the appropriate CSV header.
response
=
HttpResponse
(
content_type
=
'text/csv'
)
response
[
'Content-Disposition'
]
=
'attachment; filename="{}"'
.
format
(
filename
)
writer
=
csv
.
writer
(
response
)
writer
.
writerow
([
'#'
,
_
(
'bdd'
),
_
(
'bddid'
),
_
(
'centralid'
),
_
(
'identifiant'
),
_
(
"email"
),
_
(
'admin projet'
),
_
(
"checker"
),
\
_
(
"contact bib (hors checker)"
),
_
(
'contact pour'
)])
BDD_CHOICES
=
(
''
,
''
),
writer
.
writerow
([
''
,
''
,
''
,
''
,
_
(
"horodatage de l'extraction : "
),
adesso
])
writer
.
writerow
([])
writer
.
writerow
([
'#'
,
_
(
'centralid'
),
_
(
'bdd'
),
_
(
'bddid'
),
_
(
"date d'enregistrement"
),
\
_
(
'dernier login'
),
_
(
'identifiant'
),
_
(
"email"
),
_
(
'super admin'
),
_
(
'admin général'
),
\
_
(
'admin projet'
),
_
(
"checker"
),
_
(
"contact bib (hors checker)"
),
\
_
(
'autorisé'
),
_
(
'mode privé activé'
)])
for
i
in
[
n
for
n
in
range
(
100
)]:
if
os
.
path
.
isfile
(
'{:02d}.db'
.
format
(
i
)):
p
=
Project
.
objects
.
using
(
'{:02d}'
.
format
(
i
)).
all
().
order_by
(
'pk'
)[
0
].
name
BDD_CHOICES
+=
(
'{:02d}'
.
format
(
i
),
p
),
c
=
1
for
bddelmt
in
BDD_CHOICES
[
1
:]:
for
uterelmt
in
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
all
():
if
BddAdmin
.
objects
.
using
(
bddelmt
[
0
]).
filter
(
contact
=
uterelmt
.
mail
):
ad
=
"x"
adlist
=
"@ admin - "
else
:
ad
=
""
if
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
get
(
username
=
uterelmt
.
username
).
mail
==
\
Library
.
objects
.
using
(
bddelmt
[
0
]).
get
(
name
=
"checker"
).
contact
or
\
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
get
(
username
=
uterelmt
.
username
).
mail
==
\
Library
.
objects
.
using
(
bddelmt
[
0
]).
get
(
name
=
"checker"
).
contact_bis
or
\
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
get
(
username
=
uterelmt
.
username
).
mail
==
\
Library
.
objects
.
using
(
bddelmt
[
0
]).
get
(
name
=
"checker"
).
contact_ter
:
bibcheck
=
"x"
bibchecklist
=
"@ checker - "
else
:
bibcheck
=
""
bibnotcheck
,
bibnotchecklist
=
""
,
""
for
libelmt
in
Library
.
objects
.
using
(
bddelmt
[
0
]).
all
().
exclude
(
name
=
"checker"
):
if
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
get
(
username
=
uterelmt
.
username
).
mail
==
libelmt
.
contact
:
bibnotcheck
=
"x"
bibnotchecklist
+=
"@ "
+
str
(
Library
.
objects
.
using
(
bddelmt
[
0
]).
get
(
name
=
libelmt
.
name
).
name
)
+
" - "
if
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
get
(
username
=
uterelmt
.
username
).
mail
==
libelmt
.
contact_bis
:
bibnotcheck
=
"x"
bibnotchecklist
+=
"@ "
+
str
(
Library
.
objects
.
using
(
bddelmt
[
0
]).
get
(
name
=
libelmt
.
name
).
name
)
+
" - "
if
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
get
(
username
=
uterelmt
.
username
).
mail
==
libelmt
.
contact_ter
:
bibnotcheck
=
"x"
bibnotchecklist
+=
"@ "
+
str
(
Library
.
objects
.
using
(
bddelmt
[
0
]).
get
(
name
=
libelmt
.
name
).
name
)
+
" - "
list
=
adlist
+
bibchecklist
+
bibnotchecklist
writer
.
writerow
([
c
,
bddelmt
[
0
],
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
get
(
username
=
uterelmt
.
username
).
id
,
\
User
.
objects
.
get
(
username
=
uterelmt
.
username
,
email
=
uterelmt
.
mail
).
id
,
\
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
get
(
username
=
uterelmt
.
username
).
username
,
\
Utilisateur
.
objects
.
using
(
bddelmt
[
0
]).
get
(
username
=
uterelmt
.
username
).
mail
,
ad
,
bibcheck
,
\
bibnotcheck
,
list
])
for
user
in
User
.
objects
.
all
():
if
user
.
is_superuser
and
user
.
is_staff
:
writer
.
writerow
([
c
,
user
.
id
,
''
,
''
,
user
.
date_joined
,
\
user
.
last_login
,
user
.
username
,
user
.
email
,
'x'
,
'x'
,
\
''
,
''
,
''
,
''
,
''
])
c
+=
1
adlist
,
bibchecklist
,
bibnotchecklist
=
""
,
""
,
""
# remise à zéro des compteurs
elif
user
.
is_superuser
and
not
user
.
is_staff
:
# (but it should not happen)
writer
.
writerow
([
c
,
user
.
id
,
''
,
''
,
user
.
date_joined
,
\
user
.
last_login
,
user
.
username
,
user
.
email
,
'x'
,
''
,
\
''
,
''
,
''
,
''
,
''
])
c
+=
1
elif
user
.
is_staff
and
not
user
.
is_superuser
:
writer
.
writerow
([
c
,
user
.
id
,
''
,
''
,
user
.
date_joined
,
\
user
.
last_login
,
user
.
username
,
user
.
email
,
''
,
'x'
,
\
''
,
''
,
''
,
''
,
''
])
c
+=
1
else
:
# i.e. project users
suffx
=
user
.
username
[
-
2
:]
try
:
if
Proj_setting
.
objects
.
using
(
suffx
)[
0
].
prv
:
private
=
_
(
"oui"
)
else
:
private
=
_
(
"non"
)
if
BddAdmin
.
objects
.
using
(
suffx
).
filter
(
contact
=
user
.
email
):
projadmin
=
"@"
+
suffx
else
:
projadmin
=
""
if
Utilisateur
.
objects
.
using
(
suffx
).
get
(
username
=
user
.
username
).
mail
==
\
Library
.
objects
.
using
(
suffx
).
get
(
name
=
"checker"
).
contact
or
\
Utilisateur
.
objects
.
using
(
suffx
).
get
(
username
=
user
.
username
).
mail
==
\
Library
.
objects
.
using
(
suffx
).
get
(
name
=
"checker"
).
contact_bis
or
\
Utilisateur
.
objects
.
using
(
suffx
).
get
(
username
=
user
.
username
).
mail
==
\
Library
.
objects
.
using
(
suffx
).
get
(
name
=
"checker"
).
contact_ter
:
projchecker
=
"@"
+
suffx
else
:
projchecker
=
""
is_instructor
=
""
for
libelmt
in
Library
.
objects
.
using
(
suffx
).
all
().
exclude
(
name
=
"checker"
):
if
Utilisateur
.
objects
.
using
(
suffx
).
get
(
username
=
user
.
username
).
mail
==
libelmt
.
contact
:
is_instructor
+=
"@"
+
str
(
Library
.
objects
.
using
(
suffx
).
get
(
name
=
libelmt
.
name
).
name
)
+
" - "
if
Utilisateur
.
objects
.
using
(
suffx
).
get
(
username
=
user
.
username
).
mail
==
libelmt
.
contact_bis
:
is_instructor
+=
"@"
+
str
(
Library
.
objects
.
using
(
suffx
).
get
(
name
=
libelmt
.
name
).
name
)
+
" - "
if
Utilisateur
.
objects
.
using
(
suffx
).
get
(
username
=
user
.
username
).
mail
==
libelmt
.
contact_ter
:
is_instructor
+=
"@"
+
str
(
Library
.
objects
.
using
(
suffx
).
get
(
name
=
libelmt
.
name
).
name
)
+
" - "
if
Utilisateur
.
objects
.
using
(
suffx
).
get
(
username
=
user
.
username
)
and
not
\
Library
.
objects
.
using
(
suffx
).
filter
(
contact
=
user
.
email
)
and
not
\
Library
.
objects
.
using
(
suffx
).
filter
(
contact_bis
=
user
.
email
)
and
not
\
Library
.
objects
.
using
(
suffx
).
filter
(
contact_ter
=
user
.
email
)
and
not
\
BddAdmin
.
objects
.
using
(
suffx
).
filter
(
contact
=
user
.
email
):
autoris
=
"x"
else
:
autoris
=
""
writer
.
writerow
([
c
,
user
.
id
,
suffx
,
Utilisateur
.
objects
.
using
(
suffx
).
get
(
username
=
user
.
username
).
id
,
\
user
.
date_joined
,
user
.
last_login
,
user
.
username
,
user
.
email
,
''
,
''
,
projadmin
,
projchecker
,
is_instructor
,
\
autoris
,
private
])
c
+=
1
except
:
writer
.
writerow
([
suffx
,
user
.
id
,
"absente"
,
"?"
,
user
.
date_joined
,
user
.
last_login
,
\
user
.
username
,
user
.
email
,
''
,
''
,
'?'
,
'?'
,
'?'
,
'?'
,
'?'
])
c
+=
1
return
response
eplouribousse/static/doc/User_Documentation.pdf
View file @
1db170e0
No preview for this file type
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment