|
|
@ -1,9 +1,10 @@ |
|
|
|
from flask import flash, redirect, url_for |
|
|
|
from wtforms import BooleanField |
|
|
|
from app.utils.priv_required import priv_required |
|
|
|
from app.models.users import Member |
|
|
|
from app.models.trophies import Trophy |
|
|
|
from app.forms.account import AdminUpdateAccountForm, AdminDeleteAccountForm, \ |
|
|
|
AdminAccountAddTrophyForm, AdminAccountDelTrophyForm |
|
|
|
AdminAccountEditTrophyForm |
|
|
|
from app.utils.render import render |
|
|
|
from app import app, db |
|
|
|
|
|
|
@ -15,10 +16,13 @@ def adm_edit_account(user_id): |
|
|
|
|
|
|
|
form = AdminUpdateAccountForm(prefix="user") |
|
|
|
|
|
|
|
addtrophy_form = AdminAccountAddTrophyForm(prefix="addtrophy") |
|
|
|
addtrophy_form.trophy.choices = [(t.id, t.name) for t in Trophy.query.all()] |
|
|
|
deltrophy_form = AdminAccountDelTrophyForm(prefix="deltrophy") |
|
|
|
deltrophy_form.trophy.choices = [(t.id, t.name) for t in user.trophies] |
|
|
|
class TrophyForm(AdminAccountEditTrophyForm): |
|
|
|
pass |
|
|
|
|
|
|
|
for t in Trophy.query.all(): |
|
|
|
setattr(TrophyForm, f't{t.id}', BooleanField(t.name)) |
|
|
|
setattr(TrophyForm, "user_trophies", [f't{t.id}' for t in user.trophies]) |
|
|
|
trophy_form = TrophyForm(prefix="trophies") |
|
|
|
|
|
|
|
if form.submit.data: |
|
|
|
if form.validate_on_submit(): |
|
|
@ -47,26 +51,31 @@ def adm_edit_account(user_id): |
|
|
|
else: |
|
|
|
flash('Erreur lors de la modification', 'error') |
|
|
|
|
|
|
|
if addtrophy_form.submit.data: |
|
|
|
if addtrophy_form.validate_on_submit(): |
|
|
|
trophy = Trophy.query.get(addtrophy_form.trophy.data) |
|
|
|
if trophy is not None: |
|
|
|
user.add_trophy(trophy) |
|
|
|
flash('Trophée ajouté', 'ok') |
|
|
|
if trophy_form.submit.data: |
|
|
|
if trophy_form.validate_on_submit(): |
|
|
|
for id, field in trophy_form.__dict__.items(): |
|
|
|
if id[0] == "t": |
|
|
|
print(f"id: {id[1:]}, name: {field.label}, checked={field.data}", end=" ") |
|
|
|
if field.data: |
|
|
|
print(f"Add trophy {id[1:]}") |
|
|
|
user.add_trophy(int(id[1:])) |
|
|
|
else: |
|
|
|
print(f"Del trophy {id[1:]}") |
|
|
|
user.del_trophy(int(id[1:])) |
|
|
|
else: |
|
|
|
flash("Erreur lors de l'ajout du trophée", 'error') |
|
|
|
|
|
|
|
if deltrophy_form.submit.data: |
|
|
|
if deltrophy_form.validate_on_submit(): |
|
|
|
trophy = Trophy.query.get(deltrophy_form.trophy.data) |
|
|
|
if trophy is not None: |
|
|
|
user.del_trophy(trophy) |
|
|
|
flash('Trophée retiré', 'ok') |
|
|
|
else: |
|
|
|
flash("Erreur lors du retrait du trophée", 'error') |
|
|
|
# if deltrophy_form.submit.data: |
|
|
|
# if deltrophy_form.validate_on_submit(): |
|
|
|
# trophy = Trophy.query.get(deltrophy_form.trophy.data) |
|
|
|
# if trophy is not None: |
|
|
|
# user.del_trophy(trophy) |
|
|
|
# flash('Trophée retiré', 'ok') |
|
|
|
# else: |
|
|
|
# flash("Erreur lors du retrait du trophée", 'error') |
|
|
|
|
|
|
|
return render('admin/edit_account.html', user=user, form=form, |
|
|
|
addtrophy_form=addtrophy_form, deltrophy_form=deltrophy_form) |
|
|
|
return render('admin/edit_account.html', user=user, |
|
|
|
form=form, trophy_form=trophy_form) |
|
|
|
|
|
|
|
|
|
|
|
@app.route('/admin/account/<user_id>/delete', methods=['GET', 'POST']) |
|
|
|