Beispiel #1
0
def edit(data_id=None):

    if data_id:
        data = Users.objects.get(id=data_id)
        form = FormUser(obj=data)
        form.id.data = data_id

        if request.method == 'GET':
            if data.categorie:
                form.categorie.data = []
                for cat in data.categorie:
                    form.categorie.data.append(str(cat.id))

            if data.appareil:
                form.appareil.data = []
                for cat in data.appareil:
                    form.appareil.data.append(str(cat.id))

    else:
        data = Users()
        form = FormUser()

    compte = Comptes.objects().get(id=session.get('compte_id'))

    form.categorie.choices = [('', 'Aucune categorie')]

    categorie = Categories.objects(Q(type_cat=1) & Q(compte=compte))
    for choice in categorie:
        form.categorie.choices.append((str(choice.id), choice.name))

    form.appareil.choices = [('', 'Tous les magasins')]

    appareil = PointDeVente.objects(compte=compte)
    for choice in appareil:
        form.appareil.choices.append((str(choice.id), choice.name))

    if data.admin_compte and request.method == 'POST':
        del form.categorie
        del form.appareil

    if form.validate_on_submit():

        data.first_name = form.first_name.data
        data.last_name = form.last_name.data
        data.email = form.email.data
        data.phone = form.phone.data

        data.compte = compte

        new = False
        if not data.id:
            data.activated = False
            data.pin = "0000"
            new = True

        data.appareil = []
        if form.appareil and form.appareil.data:
            magasin = PointDeVente.objects().get(id=form.appareil.data)
            data.appareil.appent(magasin)

        data.categorie = []
        if form.categorie and form.categorie.data:
            categorie = Categories.objects().get(id=form.categorie.data)
            data.categorie.appent(categorie)

        data.save()

        if new:

            token = generate_confirmation_token(data.email)
            confirm_url = url_for('home_user.confirm_email',
                                  user_id=data.id,
                                  token=token,
                                  _external=True)

            # Design de l'email a faire
            html = render_template('template_mail/user/activate.html',
                                   **locals())

            msg = Message()
            msg.recipients = [data.email]
            msg.subject = data.full_name(
            ) + ', veuillez confirmer votre adresse e-mail'
            msg.sender = (data.email, '*****@*****.**')

            msg.html = html

        flash('Enregistrement avec succes.', 'success')
        return redirect(url_for('user.index'))

    list_roles = global_role

    return render_template('user/edit.html', **locals())