on affiche un lien secret permettant à l'utilisateur de gérer lui-même sa contrib :
prolonger sa demande d'un an
supprimer sa demande
on lui envoie un mail de confirmation (si mail fourni) avec le lien secret (cf aussi #45)
Grosse étape pour #27, donc, mais attention, cette PR Ne gère pas la suppression automatique au bout d'un an. Déployer le code en l'état sans dispositif de suppression automatique reste donc mensonger.
À la soumission d'une contribution :
- on gère une date de péremption sur chaque contrib
- on affiche un lien secret permettant à l'utilisateur de gérer lui-même sa contrib :
- prolonger sa demande d'un an
- supprimer sa demande
- on lui envoie un mail de confirmation (si mail fourni) avec le lien secret (cf aussi #45)
Grosse étape pour #27, donc, mais attention, cette PR **Ne gère pas** la suppression automatique au bout d'un an. Déployer le code en l'état sans dispositif de suppression automatique reste donc mensonger.
sur ma machine, j'ai un problème d'encodage qui survient quand je soumets une nouvelle demande de connexion :
The string that could not be encoded/decoded was: > Chèr·e a
Traceback:
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "[...]/wifi-with-me/wifiwithme/apps/contribmap/decorators.py" in _wrapped_func
19. return func(request, *args, **kwargs)
File "[...]/wifi-with-me/wifiwithme/apps/contribmap/views.py" in add_contrib
66. [contrib.email],
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/mail/__init__.py" in send_mail
61. return mail.send()
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/mail/message.py" in send
292. return self.get_connection(fail_silently).send_messages([self])
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/mail/backends/console.py" in send_messages
36. self.write_message(message)
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/mail/backends/console.py" in write_message
23. self.stream.write('%s\n' % msg_data)
mais en bidouillant mes locales pour avoir de l'UTF-8, ça se passe mieux.
Premier test :
sur ma machine, j'ai un problème d'encodage qui survient quand je soumets une nouvelle demande de connexion :
`The string that could not be encoded/decoded was: > Chèr·e a`
Traceback:
```
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "[...]/wifi-with-me/wifiwithme/apps/contribmap/decorators.py" in _wrapped_func
19. return func(request, *args, **kwargs)
File "[...]/wifi-with-me/wifiwithme/apps/contribmap/views.py" in add_contrib
66. [contrib.email],
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/mail/__init__.py" in send_mail
61. return mail.send()
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/mail/message.py" in send
292. return self.get_connection(fail_silently).send_messages([self])
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/mail/backends/console.py" in send_messages
36. self.write_message(message)
File "[...]/wifi-with-me/venv/lib/python3.6/site-packages/django/core/mail/backends/console.py" in write_message
23. self.stream.write('%s\n' % msg_data)
```
mais en bidouillant mes locales pour avoir de l'UTF-8, ça se passe mieux.
hasardeux qui a bien fonctionné, mais sinon, un simple :
export LC_ALL=en_US.UTF-8
semble marcher aussi :)
J'ai tenté un :
```export PYTHONIOENCODING=utf-8```
hasardeux qui a bien fonctionné, mais sinon, un simple :
```export LC_ALL=en_US.UTF-8```
semble marcher aussi :)
C'est marrant ça ; la locale de ton système ne semble pas en UTF-8, avant que tu tripotes ces variables pour contourner le bug, ça dit quoi
env|grep -P '^(LC_|LANG)'
?
Tu es bien en python 3 ?
Ça m'intrigue :-).
> export LC_ALL=en_US.UTF-8
>
> semble marcher aussi :)
C'est marrant ça ; la locale de ton système ne semble pas en UTF-8, avant que tu tripotes ces variables pour contourner le bug, ça dit quoi
env|grep -P '^(LC_|LANG)'
?
Tu es bien en python 3 ?
Ça m'intrigue :-).
Ouais, je suis en python 3. Et ça donne : LANG=C (les autres locales LC_... sont pas définies). :p
(Je sais que mon système est pas (bien) configuré à ce niveau-là, j'ai dû zapper un truc à l'install' de mon OS, mais je me disais que tant qu'à avoir ce soucis, et comme ça pourrait affecter d'autres gens, autant le faire remonter. :) )
Ouais, je suis en python 3. Et ça donne : `LANG=C` (les autres locales `LC_...` sont pas définies). :p
(Je sais que mon système est pas (bien) configuré à ce niveau-là, j'ai dû zapper un truc à l'install' de mon OS, mais je me disais que tant qu'à avoir ce soucis, et comme ça pourrait affecter d'autres gens, autant le faire remonter. :) )
(Je sais que mon système est pas (bien) configuré à ce niveau-là, j'ai dû zapper un truc à l'install' de mon OS, mais je me disais que tant qu'à avoir ce soucis, et comme ça pourrait affecter d'autres gens, autant le faire remonter. :) )
J'avais pas lu la fin de ton message, pardon. Bon, si ta console ne supporte pas l'UTF-8 en 2017, je ne sais pas si j'ai envie de m'embêter à gérer ce cas là :-).
Au cas où tu sois sous une debian-like, dpkg-reconfigure locales t'aidera peut-être à trouver une solution.
> (Je sais que mon système est pas (bien) configuré à ce niveau-là, j'ai dû zapper un truc à l'install' de mon OS, mais je me disais que tant qu'à avoir ce soucis, et comme ça pourrait affecter d'autres gens, autant le faire remonter. :) )
J'avais pas lu la fin de ton message, pardon. Bon, si ta console ne supporte pas l'UTF-8 en 2017, je ne sais pas si j'ai envie de m'embêter à gérer ce cas là :-).
Au cas où tu sois sous une debian-like, `dpkg-reconfigure locales` t'aidera peut-être à trouver une solution.
@jocelyn: désolé pour le retard de réponse, tu fais bien de me relancer !
Pour la partie tests : quand j'ai essayé de créer une demande de connexion, puis de changer la date d'expiration, ç'a fonctionné correctement (sauf que j'ai pas de serveur mail sur ma machine de test).
Je ne suis pas familier avec Django, mais j'ai lu le code et à première vue, ça me paraît bien. :)
Même si c'est peut-être pas le coeur du sujet, j'avais quelques remarques sur la formulation :
je trouve que c'est pas clair de signer "wifi-with-me" le mail pour la personne qui demande une connexion, donc je voudrais tester et proposer un p'tit patch écrit à l'arrache tout à l'heure pour que le nom du FAI apparaisse + peut-être clarifier une tournure de phrase pour préciser qu'il faut conserver le lien pour l'utiliser ultérieurement dans wifiwithme/apps/contribmap/templates/contribmap/thanks.html
pour être tatillon : on passe du tutoiement (dans le mail) au vouvoiement (côté web)
PS : elle est très bien ma distro :p
@jocelyn: désolé pour le retard de réponse, tu fais bien de me relancer !
Pour la partie tests : quand j'ai essayé de créer une demande de connexion, puis de changer la date d'expiration, ç'a fonctionné correctement (sauf que j'ai pas de serveur mail sur ma machine de test).
Je ne suis pas familier avec Django, mais j'ai lu le code et à première vue, ça me paraît bien. :)
Même si c'est peut-être pas le coeur du sujet, j'avais quelques remarques sur la formulation :
* je trouve que c'est pas clair de signer "wifi-with-me" le mail pour la personne qui demande une connexion, donc je voudrais tester et proposer un p'tit patch écrit à l'arrache tout à l'heure pour que le nom du FAI apparaisse + peut-être clarifier une tournure de phrase pour préciser qu'il faut conserver le lien pour l'utiliser ultérieurement dans `wifiwithme/apps/contribmap/templates/contribmap/thanks.html`
* pour être tatillon : on passe du tutoiement (dans le mail) au vouvoiement (côté web)
PS : elle est très bien ma distro :p
Pour la partie tests : quand j'ai essayé de créer une demande de connexion, puis de
changer la date d'expiration, ç'a fonctionné correctement (sauf que j'ai pas de serveur mail sur ma machine de test).
Normalement si tu utilises les paramètres par défaut
Je ne suis pas familier avec Django, mais j'ai lu le code et à première vue, ça me paraît bien. :)
Même si c'est peut-être pas le coeur du sujet, j'avais quelques remarques sur la formulation :
je trouve que c'est pas clair de signer "wifi-with-me" le mail pour la personne qui demande une connexion, donc je voudrais tester et proposer un p'tit patch écrit à l'arrache tout à l'heure pour que le nom du FAI apparaisse + peut-être clarifier une tournure de phrase pour préciser qu'il faut conserver le lien pour l'utiliser ultérieurement dans wifiwithme/apps/contribmap/templates/contribmap/thanks.html
pour être tatillon : on passe du tutoiement (dans le mail) au vouvoiement (côté web)
PS : elle est très bien ma distro :p
Merci pour le retour :-)
> Pour la partie tests : quand j'ai essayé de créer une demande de connexion, puis de
changer la date d'expiration, ç'a fonctionné correctement (sauf que j'ai pas de serveur mail sur ma machine de test).
Normalement si tu utilises les paramètres par défaut
> Je ne suis pas familier avec Django, mais j'ai lu le code et à première vue, ça me paraît bien. :)
Même si c'est peut-être pas le coeur du sujet, j'avais quelques remarques sur la formulation :
je trouve que c'est pas clair de signer "wifi-with-me" le mail pour la personne qui demande une connexion, donc je voudrais tester et proposer un p'tit patch écrit à l'arrache tout à l'heure pour que le nom du FAI apparaisse + peut-être clarifier une tournure de phrase pour préciser qu'il faut conserver le lien pour l'utiliser ultérieurement dans wifiwithme/apps/contribmap/templates/contribmap/thanks.html
pour être tatillon : on passe du tutoiement (dans le mail) au vouvoiement (côté web)
PS : elle est très bien ma distro :p
Pour la partie tests : quand j'ai essayé de créer une demande de connexion, puis de
changer la date d'expiration, ç'a fonctionné correctement (sauf que j'ai pas de serveur mail sur ma machine de test).
Normalement si tu utilises les paramètres par défaut avec le serveur de développement (./manage.py runserver), tu devrais voir les mails s'afficher dans la console du runserver (c'est défini ici). Tu confirmes ?
Je ne suis pas familier avec Django, mais j'ai lu le code et à première vue, ça me paraît bien. :)
Ok, cool :)
Même si c'est peut-être pas le coeur du sujet, j'avais quelques remarques sur la formulation :
Sisi, c'est tout à fait important. Si les gens ne comprennent rien aux interfaces c'est pas la peine de faire des interfaces :-)
je trouve que c'est pas clair de signer "wifi-with-me" le mail pour la personne qui demande une connexion
C'est vrai ça. Merci de me relever le nez du guidon.
peut-être clarifier une tournure de phrase pour préciser qu'il faut conserver le lien pour l'utiliser ultérieurement dans wifiwithme/apps/contribmap/templates/contribmap/thanks.html
tout à fait d'accord
donc je voudrais tester et proposer un p'tit patch écrit à l'arrache tout à l'heure pour que le nom du FAI apparaisse
pour être tatillon : on passe du tutoiement (dans le mail) au vouvoiement (côté web)
Ah oui, vrai… Ben pour être cohérent avec ce qui existe, on pourrait vouvoyer dans le mail, du coup.
(par contre à terme, pour ma part, je préfèrerais qu'on tutoie partout. Mais chaque chose en son temps)
donc je voudrais tester et proposer un p'tit patch écrit à l'arrache tout à l'heure pour que le nom du FAI apparaisse
OK, j'attends ton patch :-) (tu dois pouvoir faire une PR vers ma branche).
Ciao,
Jocelyn
Merci pour le retour :-)
> Pour la partie tests : quand j'ai essayé de créer une demande de connexion, puis de
changer la date d'expiration, ç'a fonctionné correctement (sauf que j'ai pas de serveur mail sur ma machine de test).
Normalement si tu utilises les paramètres par défaut avec le serveur de développement (`./manage.py runserver`), tu devrais voir les mails s'afficher dans la console du runserver (c'est défini [ici](https://code.ffdn.org/FFDN/wifi-with-me/src/master/wifiwithme/settings/dev.py#L17)). Tu confirmes ?
> Je ne suis pas familier avec Django, mais j'ai lu le code et à première vue, ça me paraît bien. :)
Ok, cool :)
> Même si c'est peut-être pas le coeur du sujet, j'avais quelques remarques sur la formulation :
Sisi, c'est tout à fait important. Si les gens ne comprennent rien aux interfaces c'est pas la peine de faire des interfaces :-)
> je trouve que c'est pas clair de signer "wifi-with-me" le mail pour la personne qui demande une connexion
C'est vrai ça. Merci de me relever le nez du guidon.
> + peut-être clarifier une tournure de phrase pour préciser qu'il faut conserver le lien pour l'utiliser ultérieurement dans wifiwithme/apps/contribmap/templates/contribmap/thanks.html
tout à fait d'accord
> donc je voudrais tester et proposer un p'tit patch écrit à l'arrache tout à l'heure pour que le nom du FAI apparaisse
> pour être tatillon : on passe du tutoiement (dans le mail) au vouvoiement (côté web)
Ah oui, vrai… Ben pour être cohérent avec ce qui existe, on pourrait vouvoyer dans le mail, du coup.
(par contre à terme, pour ma part, je préfèrerais qu'on tutoie partout. Mais chaque chose en son temps)
> donc je voudrais tester et proposer un p'tit patch écrit à l'arrache tout à l'heure pour que le nom du FAI apparaisse
OK, j'attends ton patch :-) (tu dois pouvoir faire une PR vers ma branche).
Ciao,
Jocelyn
En effet, le mail s'affiche bien dans la console. :)
Je préfère aussi qu'on tutoie partout (c'est important que ça fasse pas "service clientèle" et ça fait moins distant, je trouve), je veux bien essayer de faire ça si j'ai le temps.
Je fais la PR dans la foulée.
Tschüs
Vross
En effet, le mail s'affiche bien dans la console. :)
Je préfère aussi qu'on tutoie partout (c'est important que ça fasse pas "service clientèle" et ça fait moins distant, je trouve), je veux bien essayer de faire ça si j'ai le temps.
Je fais la PR dans la foulée.
Tschüs
Vross
À la soumission d'une contribution :
Grosse étape pour #27, donc, mais attention, cette PR Ne gère pas la suppression automatique au bout d'un an. Déployer le code en l'état sans dispositif de suppression automatique reste donc mensonger.
Tests, relectures et retours plus que bienvenus :-)
Premier test :
sur ma machine, j'ai un problème d'encodage qui survient quand je soumets une nouvelle demande de connexion :
The string that could not be encoded/decoded was: > Chèr·e a
Traceback:
mais en bidouillant mes locales pour avoir de l'UTF-8, ça se passe mieux.
@vross merci pour le test ! Tu bidouilles quoi exactement pour que ça aille mieux ?
J'ai tenté un :
export PYTHONIOENCODING=utf-8
hasardeux qui a bien fonctionné, mais sinon, un simple :
export LC_ALL=en_US.UTF-8
semble marcher aussi :)
C'est marrant ça ; la locale de ton système ne semble pas en UTF-8, avant que tu tripotes ces variables pour contourner le bug, ça dit quoi
?
Tu es bien en python 3 ? Ça m'intrigue :-).
Ouais, je suis en python 3. Et ça donne :
LANG=C
(les autres localesLC_...
sont pas définies). :p(Je sais que mon système est pas (bien) configuré à ce niveau-là, j'ai dû zapper un truc à l'install' de mon OS, mais je me disais que tant qu'à avoir ce soucis, et comme ça pourrait affecter d'autres gens, autant le faire remonter. :) )
@vross tu es sous une distro linux ?
J'avais pas lu la fin de ton message, pardon. Bon, si ta console ne supporte pas l'UTF-8 en 2017, je ne sais pas si j'ai envie de m'embêter à gérer ce cas là :-).
Au cas où tu sois sous une debian-like,
dpkg-reconfigure locales
t'aidera peut-être à trouver une solution.@vross bump : et à part que ta distro est en vrac :p que donnent tes tests ?
@jocelyn: désolé pour le retard de réponse, tu fais bien de me relancer !
Pour la partie tests : quand j'ai essayé de créer une demande de connexion, puis de changer la date d'expiration, ç'a fonctionné correctement (sauf que j'ai pas de serveur mail sur ma machine de test).
Je ne suis pas familier avec Django, mais j'ai lu le code et à première vue, ça me paraît bien. :)
Même si c'est peut-être pas le coeur du sujet, j'avais quelques remarques sur la formulation :
wifiwithme/apps/contribmap/templates/contribmap/thanks.html
PS : elle est très bien ma distro :p
Merci pour le retour :-)
Normalement si tu utilises les paramètres par défaut
Même si c'est peut-être pas le coeur du sujet, j'avais quelques remarques sur la formulation :
PS : elle est très bien ma distro :p
Merci pour le retour :-)
Normalement si tu utilises les paramètres par défaut avec le serveur de développement (
./manage.py runserver
), tu devrais voir les mails s'afficher dans la console du runserver (c'est défini ici). Tu confirmes ?Ok, cool :)
Sisi, c'est tout à fait important. Si les gens ne comprennent rien aux interfaces c'est pas la peine de faire des interfaces :-)
C'est vrai ça. Merci de me relever le nez du guidon.
tout à fait d'accord
Ah oui, vrai… Ben pour être cohérent avec ce qui existe, on pourrait vouvoyer dans le mail, du coup.
(par contre à terme, pour ma part, je préfèrerais qu'on tutoie partout. Mais chaque chose en son temps)
OK, j'attends ton patch :-) (tu dois pouvoir faire une PR vers ma branche).
Ciao,
Jocelyn
En effet, le mail s'affiche bien dans la console. :)
Je préfère aussi qu'on tutoie partout (c'est important que ça fasse pas "service clientèle" et ça fait moins distant, je trouve), je veux bien essayer de faire ça si j'ai le temps.
Je fais la PR dans la foulée.
Tschüs
Vross
Intégré la PR de @vross, passé au vouvoiement et fusion !