Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
re2o
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nounous
re2o
Commits
a3c0a50f
Commit
a3c0a50f
authored
Jan 31, 2018
by
Gabriel Detraz
Committed by
root
Jan 31, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Optimisation sur assooption et divers
parent
8015b27b
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
43 additions
and
40 deletions
+43
-40
cotisations/payment.py
cotisations/payment.py
+4
-6
cotisations/views.py
cotisations/views.py
+14
-17
machines/views.py
machines/views.py
+1
-1
preferences/models.py
preferences/models.py
+13
-0
topologie/views.py
topologie/views.py
+1
-1
users/models.py
users/models.py
+9
-13
users/views.py
users/views.py
+1
-2
No files found.
cotisations/payment.py
View file @
a3c0a50f
...
...
@@ -38,7 +38,6 @@ def refuse_payment(request):
@
csrf_exempt
def
ipn
(
request
):
option
,
_created
=
AssoOption
.
objects
.
get_or_create
()
p
=
ComnpayPayment
()
order
=
(
'idTpe'
,
'idTransaction'
,
'montant'
,
'result'
,
'sec'
,
)
try
:
...
...
@@ -46,7 +45,7 @@ def ipn(request):
except
MultiValueDictKeyError
:
return
HttpResponseBadRequest
(
"HTTP/1.1 400 Bad Request"
)
if
not
p
.
validSec
(
data
,
option
.
payment_pass
):
if
not
p
.
validSec
(
data
,
AssoOption
.
get_cached_value
(
'payment_pass'
)
):
return
HttpResponseBadRequest
(
"HTTP/1.1 400 Bad Request"
)
result
=
True
if
(
request
.
POST
[
'result'
]
==
'OK'
)
else
False
...
...
@@ -54,7 +53,7 @@ def ipn(request):
idTransaction
=
request
.
POST
[
'idTransaction'
]
# On vérifie que le paiement nous est destiné
if
not
idTpe
==
option
.
payment_id
:
if
not
idTpe
==
AssoOption
.
get_cached_value
(
'payment_id'
)
:
return
HttpResponseBadRequest
(
"HTTP/1.1 400 Bad Request"
)
try
:
...
...
@@ -81,10 +80,9 @@ def ipn(request):
def
comnpay
(
facture
,
request
):
host
=
request
.
get_host
()
option
,
_created
=
AssoOption
.
objects
.
get_or_create
()
p
=
ComnpayPayment
(
str
(
option
.
payment_id
),
str
(
option
.
payment_pass
),
str
(
AssoOption
.
get_cached_value
(
'payment_id'
)
),
str
(
AssoOption
.
get_cached_value
(
'payment_pass'
)
),
'https://'
+
host
+
reverse
(
'cotisations:accept_payment'
,
kwargs
=
{
'factureid'
:
facture
.
id
}
...
...
cotisations/views.py
View file @
a3c0a50f
...
...
@@ -180,7 +180,6 @@ def new_facture_pdf(request):
Vente ou Facture correspondant en bdd"""
facture_form
=
NewFactureFormPdf
(
request
.
POST
or
None
)
if
facture_form
.
is_valid
():
options
,
_created
=
AssoOption
.
objects
.
get_or_create
()
tbl
=
[]
article
=
facture_form
.
cleaned_data
[
'article'
]
quantite
=
facture_form
.
cleaned_data
[
'number'
]
...
...
@@ -199,12 +198,12 @@ def new_facture_pdf(request):
'article'
:
tbl
,
'total'
:
prix_total
,
'paid'
:
paid
,
'asso_name'
:
options
.
name
,
'line1'
:
options
.
adresse1
,
'line2'
:
options
.
adresse2
,
'siret'
:
options
.
siret
,
'email'
:
options
.
contact
,
'phone'
:
options
.
telephone
,
'asso_name'
:
AssoOption
.
get_cached_value
(
'name'
)
,
'line1'
:
AssoOption
.
get_cached_value
(
'adresse1'
)
,
'line2'
:
AssoOption
.
get_cached_value
(
'adresse2'
)
,
'siret'
:
AssoOption
.
get_cached_value
(
'siret'
)
,
'email'
:
AssoOption
.
get_cached_value
(
'contact'
)
,
'phone'
:
AssoOption
.
get_cached_value
(
'telephone'
)
,
'tpl_path'
:
os
.
path
.
join
(
settings
.
BASE_DIR
,
LOGO_PATH
)
})
return
form
({
...
...
@@ -222,7 +221,6 @@ def facture_pdf(request, facture, factureid):
ventes_objects
=
Vente
.
objects
.
all
().
filter
(
facture
=
facture
)
ventes
=
[]
options
,
_created
=
AssoOption
.
objects
.
get_or_create
()
for
vente
in
ventes_objects
:
ventes
.
append
([
vente
,
vente
.
number
,
vente
.
prix_total
])
return
render_invoice
(
request
,
{
...
...
@@ -232,12 +230,12 @@ def facture_pdf(request, facture, factureid):
'dest'
:
facture
.
user
,
'article'
:
ventes
,
'total'
:
facture
.
prix_total
(),
'asso_name'
:
options
.
name
,
'line1'
:
options
.
adresse1
,
'line2'
:
options
.
adresse2
,
'siret'
:
options
.
siret
,
'email'
:
options
.
contact
,
'phone'
:
options
.
telephone
,
'asso_name'
:
AssoOption
.
get_cached_value
(
'name'
)
,
'line1'
:
AssoOption
.
get_cached_value
(
'adresse1'
)
,
'line2'
:
AssoOption
.
get_cached_value
(
'adresse2'
)
,
'siret'
:
AssoOption
.
get_cached_value
(
'siret'
)
,
'email'
:
AssoOption
.
get_cached_value
(
'contact'
)
,
'phone'
:
AssoOption
.
get_cached_value
(
'telephone'
)
,
'tpl_path'
:
os
.
path
.
join
(
settings
.
BASE_DIR
,
LOGO_PATH
)
})
...
...
@@ -683,8 +681,7 @@ def new_facture_solde(request, userid):
@
login_required
def
recharge
(
request
):
options
,
_created
=
AssoOption
.
objects
.
get_or_create
()
if
options
.
payment
==
'NONE'
:
if
AssoOption
.
get_cached_value
(
'payment'
)
==
'NONE'
:
messages
.
error
(
request
,
"Le paiement en ligne est désactivé."
...
...
@@ -707,6 +704,6 @@ def recharge(request):
number
=
1
,
)
v
.
save
()
content
=
payment
.
PAYMENT_SYSTEM
[
options
.
payment
](
facture
,
request
)
content
=
payment
.
PAYMENT_SYSTEM
[
AssoOption
.
get_cached_value
(
'payment'
)
](
facture
,
request
)
return
render
(
request
,
'cotisations/payment.html'
,
content
)
return
form
({
'rechargeform'
:
f
},
'cotisations/recharge.html'
,
request
)
machines/views.py
View file @
a3c0a50f
...
...
@@ -982,7 +982,7 @@ def del_nas(request, instances):
@
can_view_all
(
Machine
)
def
index
(
request
):
pagination_large_number
=
GeneralOption
.
get_cached_value
(
'pagination_large_number'
)
machines_list
=
Machine
.
objects
.
select_related
(
'user'
).
prefetch_related
(
'interface_set__domain__extension'
).
prefetch_related
(
'interface_set__ipv4__ip_type'
).
prefetch_related
(
'interface_set__type__ip_type__extension'
).
prefetch_related
(
'interface_set__domain__related_domain__extension'
)
machines_list
=
Machine
.
objects
.
select_related
(
'user'
).
prefetch_related
(
'interface_set__domain__extension'
).
prefetch_related
(
'interface_set__ipv4__ip_type'
).
prefetch_related
(
'interface_set__type__ip_type__extension'
).
prefetch_related
(
'interface_set__domain__related_domain__extension'
)
.
prefetch_related
(
'interface_set__ipv6list'
)
machines_list
=
SortTable
.
sort
(
machines_list
,
request
.
GET
.
get
(
'col'
),
...
...
preferences/models.py
View file @
a3c0a50f
...
...
@@ -571,6 +571,19 @@ class AssoOption(models.Model):
blank
=
True
,
)
@
classmethod
def
set_in_cache
(
cls
,
key
):
machine_options
,
_created
=
cls
.
objects
.
get_or_create
()
value
=
getattr
(
machine_options
,
key
)
cache
.
set
(
'assooption_'
+
key
,
value
,
None
)
return
value
@
classmethod
def
get_cached_value
(
cls
,
key
):
value
=
cache
.
get
(
'assooption_'
+
key
)
if
value
==
None
:
value
=
cls
.
set_in_cache
(
key
)
return
value
class
Meta
:
permissions
=
(
...
...
topologie/views.py
View file @
a3c0a50f
...
...
@@ -190,7 +190,7 @@ def index_stack(request):
@
can_view_all
(
ConstructorSwitch
)
def
index_model_switch
(
request
):
""" Affichage de l'ensemble des modèles de switches"""
model_switch_list
=
ModelSwitch
.
objects
model_switch_list
=
ModelSwitch
.
objects
.
select_related
(
'constructor'
)
constructor_switch_list
=
ConstructorSwitch
.
objects
model_switch_list
=
SortTable
.
sort
(
model_switch_list
,
...
...
users/models.py
View file @
a3c0a50f
...
...
@@ -530,20 +530,19 @@ class User(FieldPermissionModelMixin, AbstractBaseUser, PermissionsMixin):
def
notif_inscription
(
self
):
""" Prend en argument un objet user, envoie un mail de bienvenue """
template
=
loader
.
get_template
(
'users/email_welcome'
)
assooptions
,
_created
=
AssoOption
.
objects
.
get_or_create
()
mailmessageoptions
,
_created
=
MailMessageOption
\
.
objects
.
get_or_create
()
context
=
Context
({
'nom'
:
self
.
get_full_name
(),
'asso_name'
:
assooptions
.
name
,
'asso_email'
:
assooptions
.
contact
,
'asso_name'
:
AssoOption
.
get_cached_value
(
'name'
)
,
'asso_email'
:
AssoOption
.
get_cached_value
(
'contact'
)
,
'welcome_mail_fr'
:
mailmessageoptions
.
welcome_mail_fr
,
'welcome_mail_en'
:
mailmessageoptions
.
welcome_mail_en
,
'pseudo'
:
self
.
pseudo
,
})
send_mail
(
'Bienvenue au %(name)s / Welcome to %(name)s'
%
{
'name'
:
assooptions
.
name
'name'
:
AssoOption
.
get_cached_value
(
'name'
)
},
''
,
GeneralOption
.
get_cached_value
(
'email_from'
),
...
...
@@ -560,11 +559,10 @@ class User(FieldPermissionModelMixin, AbstractBaseUser, PermissionsMixin):
req
.
user
=
self
req
.
save
()
template
=
loader
.
get_template
(
'users/email_passwd_request'
)
options
,
_created
=
AssoOption
.
objects
.
get_or_create
()
context
=
{
'name'
:
req
.
user
.
get_full_name
(),
'asso'
:
options
.
name
,
'asso_mail'
:
options
.
contact
,
'asso'
:
AssoOption
.
get_cached_value
(
'name'
)
,
'asso_mail'
:
AssoOption
.
get_cached_value
(
'contact'
)
,
'site_name'
:
GeneralOption
.
get_cached_value
(
'site_name'
),
'url'
:
request
.
build_absolute_uri
(
reverse
(
'users:process'
,
kwargs
=
{
'token'
:
req
.
token
})),
...
...
@@ -572,7 +570,7 @@ class User(FieldPermissionModelMixin, AbstractBaseUser, PermissionsMixin):
}
send_mail
(
'Changement de mot de passe du %(name)s / Password
\
renewal for %(name)s'
%
{
'name'
:
options
.
name
},
renewal for %(name)s'
%
{
'name'
:
AssoOption
.
get_cached_value
(
'name'
)
},
template
.
render
(
context
),
GeneralOption
.
get_cached_value
(
'email_from'
),
[
req
.
user
.
email
],
...
...
@@ -617,13 +615,12 @@ class User(FieldPermissionModelMixin, AbstractBaseUser, PermissionsMixin):
"""Notification mail lorsque une machine est automatiquement
ajoutée par le radius"""
template
=
loader
.
get_template
(
'users/email_auto_newmachine'
)
assooptions
,
_created
=
AssoOption
.
objects
.
get_or_create
()
context
=
Context
({
'nom'
:
self
.
get_full_name
(),
'mac_address'
:
interface
.
mac_address
,
'asso_name'
:
assooptions
.
name
,
'asso_name'
:
AssoOption
.
get_cached_value
(
'name'
)
,
'interface_name'
:
interface
.
domain
,
'asso_email'
:
assooptions
.
contact
,
'asso_email'
:
AssoOption
.
get_cached_value
(
'contact'
)
,
'pseudo'
:
self
.
pseudo
,
})
send_mail
(
...
...
@@ -1260,12 +1257,11 @@ class Ban(models.Model):
def
notif_ban
(
self
):
""" Prend en argument un objet ban, envoie un mail de notification """
template
=
loader
.
get_template
(
'users/email_ban_notif'
)
options
,
_created
=
AssoOption
.
objects
.
get_or_create
()
context
=
Context
({
'name'
:
self
.
user
.
get_full_name
(),
'raison'
:
self
.
raison
,
'date_end'
:
self
.
date_end
,
'asso_name'
:
options
.
name
,
'asso_name'
:
AssoOption
.
get_cached_value
(
'name'
)
,
})
send_mail
(
'Deconnexion disciplinaire'
,
...
...
users/views.py
View file @
a3c0a50f
...
...
@@ -777,8 +777,7 @@ def profil(request, users, userid):
SortTable
.
USERS_INDEX_WHITE
)
user_solde
=
OptionalUser
.
get_cached_value
(
'user_solde'
)
options
,
_created
=
AssoOption
.
objects
.
get_or_create
()
allow_online_payment
=
options
.
payment
!=
'NONE'
allow_online_payment
=
AssoOption
.
get_cached_value
(
'payment'
)
!=
'NONE'
return
render
(
request
,
'users/profil.html'
,
...
...
Write
Preview
Markdown
is supported
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