Bug #35479
erreur lors de l'import de la liste d'evenement
Début:
20 août 2019
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Non
Description
Internal Server Error: /manage/agendas/320/import-events TypeError at /manage/agendas/320/import-events "delimiter" must be string, not unicode Request Method: POST Request URL: https://chrono-orleans.test.entrouvert.org/manage/agendas/320/import-events Django Version: 1.11.20 Python Executable: /usr/bin/uwsgi-core Python Version: 2.7.13 Python Path: ['.', '', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages'] Server time: mar, 20 Aoû 2019 14:49:29 +0200 Installed Applications: '' Installed Middleware: '' Traceback: File "/usr/lib/python2.7/dist-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.7/dist-packages/django/contrib/auth/decorators.py" in _wrapped_view 23. return view_func(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py" in view 68. return self.dispatch(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/chrono/manager/views.py" in dispatch 448. return super(ManagedAgendaMixin, self).dispatch(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py" in dispatch 88. return handler(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/views/generic/edit.py" in post 182. if form.is_valid(): File "/usr/lib/python2.7/dist-packages/django/forms/forms.py" in is_valid 183. return self.is_bound and not self.errors File "/usr/lib/python2.7/dist-packages/django/forms/forms.py" in errors 175. self.full_clean() File "/usr/lib/python2.7/dist-packages/django/forms/forms.py" in full_clean 384. self._clean_fields() File "/usr/lib/python2.7/dist-packages/django/forms/forms.py" in _clean_fields 405. value = getattr(self, 'clean_%s' % name)() File "/usr/lib/python2.7/dist-packages/chrono/manager/forms.py" in clean_events_csv_file 194. for i, csvline in enumerate(csv.reader(utf_8_encoder(content.splitlines()), dialect=dialect)): Exception Type: TypeError at /manage/agendas/320/import-events Exception Value: "delimiter" must be string, not unicode
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 4 ans
Chouette, ça passe sans soucis dans chrono que je fais tourner en local en python 3.
Mis à jour par Frédéric Péters il y a plus de 4 ans
Je suis plutôt pour faire comme les autres tests et se passer du filesystem,
--- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -616,6 +616,14 @@ def test_import_events(app, admin_user): assert Event.objects.count() == 2 Event.objects.all().delete() + resp = app.get('/manage/agendas/%s/import-events' % agenda.id, status=200) + resp.form['events_csv_file'] = Upload('t.csv', '"date"\t"time"\t"etc."\n' + '"2016-09-16"\t"18:00"\t"10"\t"5"\t"éléphant"\n' + '"2016-09-19"\t"18:00"\t"10"'.encode('iso-8859-15'), 'text/csv') + resp = resp.form.submit(status=302) + assert Event.objects.count() == 2 + Event.objects.all().delete() +
Mis à jour par Frédéric Péters il y a plus de 4 ans
Taper le test à la fin pour ne rien avoir à adapter.
Et sur la dernière variation, ça se trouve faire deux fois la détection, tout ça gagnerait sans doute à être simplement,
try: - dialect = csv.Sniffer().sniff(content) + dialect = csv.Sniffer().sniff(content if six.PY3 else content.encode('utf-8')) except csv.Error: dialect = None
Mis à jour par Serghei Mihai il y a plus de 4 ans
- Fichier 0001-manager-fix-import-of-utf-8-encoded-events-file-3547.patch 0001-manager-fix-import-of-utf-8-encoded-events-file-3547.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 4 ans
Comme noté pas fan de lancer deux fois la détection.
Mis à jour par Serghei Mihai il y a plus de 4 ans
- Fichier 0001-manager-fix-import-of-utf-8-encoded-events-file-3547.patch 0001-manager-fix-import-of-utf-8-encoded-events-file-3547.patch ajouté
Tu as raison.
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Duplique Bug #33674: crash import csv, "delimiter" must be string, not unicode ajouté
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Solution proposée à Résolu (à déployer)
commit 2310528fc22dec45834b6974b3a94a40e9490ba3 Author: Serghei Mihai <smihai@entrouvert.com> Date: Tue Aug 20 16:14:35 2019 +0200 manager: fix import of utf-8 encoded events file (#35479)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
manager: fix import of utf-8 encoded events file (#35479)