From 2dd21893144d46e7603b26117cb0bf74d1b6748c Mon Sep 17 00:00:00 2001 From: klmp200 Date: Mon, 7 Nov 2016 22:05:09 +0100 Subject: [PATCH] Download sellings as csv --- club/templates/club/club_sellings.jinja | 1 + club/urls.py | 1 + club/views.py | 33 +++++++- locale/fr/LC_MESSAGES/django.mo | Bin 37400 -> 37453 bytes locale/fr/LC_MESSAGES/django.po | 106 ++++++++++++++---------- 5 files changed, 95 insertions(+), 46 deletions(-) diff --git a/club/templates/club/club_sellings.jinja b/club/templates/club/club_sellings.jinja index 34acc234..21c061d3 100644 --- a/club/templates/club/club_sellings.jinja +++ b/club/templates/club/club_sellings.jinja @@ -7,6 +7,7 @@ {% csrf_token %} {{ form }}

+

{% trans %}Quantity: {% endtrans %}{{ total_quantity }} {% trans %}units{% endtrans %}
diff --git a/club/urls.py b/club/urls.py index 50b5b775..7884df0b 100644 --- a/club/urls.py +++ b/club/urls.py @@ -10,6 +10,7 @@ urlpatterns = [ url(r'^(?P[0-9]+)/members$', ClubMembersView.as_view(), name='club_members'), url(r'^(?P[0-9]+)/elderlies$', ClubOldMembersView.as_view(), name='club_old_members'), url(r'^(?P[0-9]+)/sellings$', ClubSellingView.as_view(), name='club_sellings'), + url(r'^(?P[0-9]+)/sellings/csv$', ClubSellingCSVView.as_view(), name='sellings_csv'), url(r'^(?P[0-9]+)/prop$', ClubEditPropView.as_view(), name='club_prop'), url(r'^(?P[0-9]+)/tools$', ClubToolsView.as_view(), name='tools'), url(r'^membership/(?P[0-9]+)/set_old$', MembershipSetOldView.as_view(), name='membership_set_old'), diff --git a/club/views.py b/club/views.py index 17f5c873..23e0c959 100644 --- a/club/views.py +++ b/club/views.py @@ -4,10 +4,11 @@ from django.views.generic import ListView, DetailView from django.views.generic.edit import UpdateView, CreateView from django.forms import CheckboxSelectMultiple from django.core.exceptions import ValidationError -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect, HttpResponse from django.core.urlresolvers import reverse from django.utils import timezone from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import ugettext as _t from django.conf import settings from ajax_select.fields import AutoCompleteSelectField @@ -203,6 +204,36 @@ class ClubSellingView(ClubTabsMixin, CanEditMixin, DetailView): kwargs['form'] = form return kwargs +class ClubSellingCSVView(ClubSellingView): + """ + Generate sellings in csv for a given period + """ + + def get(self, request, *args, **kwargs): + import csv + response = HttpResponse(content_type='text/csv') + self.object = self.get_object() + name = _("Sellings") + "_" + self.object.name + ".csv" + response['Content-Disposition'] = 'filename=' + name + kwargs = self.get_context_data(**kwargs) + writer = csv.writer(response, delimiter=";", lineterminator='\n', quoting=csv.QUOTE_ALL) + + writer.writerow([_t('Date'),_t('Counter'),_t('Barman'),_t('Customer'),_t('Label'), + _t('Quantity'), _t('Total'),_t('Payment method')]) + for o in kwargs['result']: + row = [o.date, o.counter] + if o.seller: + row.append(o.seller.get_display_name()) + else: row.append('') + if o.customer: + row.append(o.customer.user.get_display_name()) + else: row.append('') + row = row +[o.label, o.quantity, o.quantity * o.unit_price, + o.get_payment_method_display()] + writer.writerow(row) + + return response + class ClubEditView(ClubTabsMixin, CanEditMixin, UpdateView): """ Edit a Club's main informations (for the club's members) diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index f270d67187298b6166ae18af5ccda416bb4dccbf..896b8e1ebbb385c7c163b83f8bd0ff78c8593731 100644 GIT binary patch delta 13395 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 M0=7RI+%Dq(01JQpnE(I) diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 0b51d657..9f2974f1 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-03 16:28+0100\n" +"POT-Creation-Date: 2016-11-07 22:00+0100\n" "PO-Revision-Date: 2016-07-18\n" "Last-Translator: Skia \n" "Language-Team: AE info \n" @@ -123,7 +123,7 @@ msgstr "numéro" msgid "journal" msgstr "classeur" -#: accounting/models.py:194 core/models.py:498 core/models.py:776 +#: accounting/models.py:194 core/models.py:498 core/models.py:778 #: counter/models.py:237 counter/models.py:280 counter/models.py:397 #: eboutic/models.py:15 eboutic/models.py:48 msgid "date" @@ -277,7 +277,7 @@ msgstr "Liste des types comptable" #: accounting/templates/accounting/label_list.jinja:9 #: accounting/templates/accounting/operation_edit.jinja:9 #: accounting/templates/accounting/simplifiedaccountingtype_list.jinja:9 -#: core/templates/core/user_tools.jinja:42 +#: core/templates/core/user_tools.jinja:43 msgid "Accounting" msgstr "Comptabilité" @@ -296,14 +296,14 @@ msgstr "Il n'y a pas de types comptable dans ce site web." #: accounting/templates/accounting/bank_account_details.jinja:4 #: accounting/templates/accounting/bank_account_details.jinja:13 -#: core/templates/core/user_tools.jinja:49 +#: core/templates/core/user_tools.jinja:50 msgid "Bank account: " msgstr "Compte en banque : " #: accounting/templates/accounting/bank_account_details.jinja:15 #: accounting/templates/accounting/club_account_details.jinja:16 #: accounting/templates/accounting/label_list.jinja:21 -#: club/templates/club/club_sellings.jinja:48 +#: club/templates/club/club_sellings.jinja:53 #: core/templates/core/file_detail.jinja:43 #: core/templates/core/group_list.jinja:13 core/templates/core/macros.jinja:66 #: core/templates/core/user_account_detail.jinja:38 @@ -316,7 +316,7 @@ msgid "Delete" msgstr "Supprimer" #: accounting/templates/accounting/bank_account_details.jinja:17 -#: club/views.py:31 core/views/user.py:130 +#: club/views.py:32 core/views/user.py:130 msgid "Infos" msgstr "Infos" @@ -335,9 +335,9 @@ msgstr "Nouveau compte club" #: accounting/templates/accounting/bank_account_details.jinja:26 #: accounting/templates/accounting/bank_account_list.jinja:21 #: accounting/templates/accounting/club_account_details.jinja:55 -#: accounting/templates/accounting/journal_details.jinja:70 club/views.py:53 +#: accounting/templates/accounting/journal_details.jinja:70 club/views.py:54 #: core/templates/core/file.jinja:38 core/templates/core/page.jinja:31 -#: core/templates/core/user_tools.jinja:35 core/views/user.py:147 +#: core/templates/core/user_tools.jinja:36 core/views/user.py:147 #: counter/templates/counter/cash_summary_list.jinja:53 #: counter/templates/counter/counter_list.jinja:17 #: counter/templates/counter/counter_list.jinja:32 @@ -472,7 +472,7 @@ msgid "Nb" msgstr "No" #: accounting/templates/accounting/journal_details.jinja:29 -#: club/templates/club/club_sellings.jinja:18 +#: club/templates/club/club_sellings.jinja:23 #: core/templates/core/user_account_detail.jinja:17 #: core/templates/core/user_account_detail.jinja:50 #: core/templates/core/user_account_detail.jinja:79 @@ -483,7 +483,7 @@ msgid "Date" msgstr "Date" #: accounting/templates/accounting/journal_details.jinja:30 -#: club/templates/club/club_sellings.jinja:22 +#: club/templates/club/club_sellings.jinja:27 #: core/templates/core/user_account_detail.jinja:20 #: counter/templates/counter/last_ops.jinja:42 msgid "Label" @@ -533,7 +533,8 @@ msgid "Edit operation" msgstr "Éditer l'opération" #: accounting/templates/accounting/operation_edit.jinja:40 -#: core/templates/core/create.jinja:12 core/templates/core/edit.jinja:12 +#: core/templates/core/create.jinja:12 core/templates/core/edit.jinja:7 +#: core/templates/core/edit.jinja.py:15 core/templates/core/edit.jinja:20 #: core/templates/core/file_edit.jinja:8 core/templates/core/page_prop.jinja:8 #: core/templates/core/pagerev_edit.jinja:24 #: core/templates/core/user_godfathers.jinja:35 @@ -619,6 +620,7 @@ msgid "Club list" msgstr "Liste des clubs" #: club/templates/club/club_list.jinja:21 +#: core/templates/core/user_tools.jinja:19 msgid "New club" msgstr "Nouveau club" @@ -675,7 +677,7 @@ msgstr "Du" msgid "To" msgstr "Au" -#: club/templates/club/club_sellings.jinja:5 club/views.py:58 +#: club/templates/club/club_sellings.jinja:5 club/views.py:59 #: counter/templates/counter/counter_main.jinja:19 #: counter/templates/counter/last_ops.jinja:35 msgid "Sellings" @@ -686,29 +688,33 @@ msgstr "Ventes" msgid "Show" msgstr "Montrer" -#: club/templates/club/club_sellings.jinja:12 +#: club/templates/club/club_sellings.jinja:10 +msgid "Download as cvs" +msgstr "Télécharger en csv" + +#: club/templates/club/club_sellings.jinja:13 msgid "Quantity: " msgstr "Quantité : " -#: club/templates/club/club_sellings.jinja:12 +#: club/templates/club/club_sellings.jinja:13 msgid "units" msgstr "unités" -#: club/templates/club/club_sellings.jinja:13 +#: club/templates/club/club_sellings.jinja:14 #: counter/templates/counter/counter_click.jinja:70 #: counter/templates/counter/counter_main.jinja:28 #: eboutic/templates/eboutic/eboutic_main.jinja:34 msgid "Total: " msgstr "Total : " -#: club/templates/club/club_sellings.jinja:19 club/views.py:165 +#: club/templates/club/club_sellings.jinja:24 club/views.py:166 #: core/templates/core/user_account_detail.jinja:18 #: core/templates/core/user_account_detail.jinja:51 #: counter/templates/counter/cash_summary_list.jinja:33 counter/views.py:78 msgid "Counter" msgstr "Comptoir" -#: club/templates/club/club_sellings.jinja:20 +#: club/templates/club/club_sellings.jinja:25 #: core/templates/core/user_account_detail.jinja:19 #: core/templates/core/user_account_detail.jinja:52 #: counter/templates/counter/last_ops.jinja:15 @@ -716,21 +722,21 @@ msgstr "Comptoir" msgid "Barman" msgstr "Barman" -#: club/templates/club/club_sellings.jinja:21 +#: club/templates/club/club_sellings.jinja:26 #: counter/templates/counter/counter_click.jinja:29 #: counter/templates/counter/last_ops.jinja:16 #: counter/templates/counter/last_ops.jinja:41 msgid "Customer" msgstr "Client" -#: club/templates/club/club_sellings.jinja:23 +#: club/templates/club/club_sellings.jinja:28 #: core/templates/core/user_account_detail.jinja:21 #: core/templates/core/user_stats.jinja:28 #: counter/templates/counter/last_ops.jinja:43 msgid "Quantity" msgstr "Quantité" -#: club/templates/club/club_sellings.jinja:24 +#: club/templates/club/club_sellings.jinja:29 #: core/templates/core/user_account.jinja:10 #: core/templates/core/user_account_detail.jinja:22 #: counter/templates/counter/cash_summary_list.jinja:35 @@ -739,7 +745,7 @@ msgstr "Quantité" msgid "Total" msgstr "Total" -#: club/templates/club/club_sellings.jinja:25 +#: club/templates/club/club_sellings.jinja:30 #: core/templates/core/user_account_detail.jinja:23 #: core/templates/core/user_account_detail.jinja:54 #: counter/templates/counter/last_ops.jinja:18 @@ -748,7 +754,7 @@ msgid "Payment method" msgstr "Méthode de paiement" #: club/templates/club/club_tools.jinja:4 -#: core/templates/core/user_tools.jinja:61 +#: core/templates/core/user_tools.jinja:62 msgid "Club tools" msgstr "Outils club" @@ -764,37 +770,37 @@ msgstr "Comptabilité : " msgid "Manage launderettes" msgstr "Gestion des laveries" -#: club/views.py:37 +#: club/views.py:38 msgid "Members" msgstr "Membres" -#: club/views.py:42 +#: club/views.py:43 msgid "Old members" msgstr "Anciens membres" -#: club/views.py:48 core/templates/core/base.jinja:40 core/views/user.py:141 +#: club/views.py:49 core/templates/core/base.jinja:40 core/views/user.py:141 msgid "Tools" msgstr "Outils" -#: club/views.py:64 counter/templates/counter/counter_list.jinja:21 +#: club/views.py:65 counter/templates/counter/counter_list.jinja:21 #: counter/templates/counter/counter_list.jinja:36 #: counter/templates/counter/counter_list.jinja:51 msgid "Props" msgstr "Propriétés" -#: club/views.py:102 core/views/forms.py:204 counter/views.py:39 +#: club/views.py:103 core/views/forms.py:204 counter/views.py:39 msgid "Select user" msgstr "Choisir un utilisateur" -#: club/views.py:163 counter/views.py:909 +#: club/views.py:164 counter/views.py:909 msgid "Begin date" msgstr "Date de début" -#: club/views.py:164 counter/views.py:910 +#: club/views.py:165 counter/views.py:910 msgid "End date" msgstr "Date de fin" -#: club/views.py:178 core/templates/core/user_stats.jinja:27 +#: club/views.py:179 core/templates/core/user_stats.jinja:27 #: counter/views.py:990 msgid "Product" msgstr "Produit" @@ -1171,23 +1177,33 @@ msgstr "nom de la page" msgid "owner group" msgstr "groupe propriétaire" -#: core/models.py:660 +#: core/models.py:633 +#, fuzzy +#| msgid "Select user" +msgid "lock user" +msgstr "Choisir un utilisateur" + +#: core/models.py:634 +msgid "lock_timeout" +msgstr "" + +#: core/models.py:661 msgid "Duplicate page" msgstr "Une page de ce nom existe déjà" -#: core/models.py:666 +#: core/models.py:667 msgid "Loop in page tree" msgstr "Boucle dans l'arborescence des pages" -#: core/models.py:773 +#: core/models.py:775 msgid "revision" msgstr "révision" -#: core/models.py:774 +#: core/models.py:776 msgid "page title" msgstr "titre de la page" -#: core/models.py:775 +#: core/models.py:777 msgid "page content" msgstr "contenu de la page" @@ -1294,7 +1310,7 @@ msgstr "Confirmation" msgid "Cancel" msgstr "Annuler" -#: core/templates/core/edit.jinja:4 core/templates/core/edit.jinja.py:8 +#: core/templates/core/edit.jinja:5 core/templates/core/edit.jinja.py:13 #: core/templates/core/file_edit.jinja:4 #: counter/templates/counter/cash_register_summary.jinja:4 #, python-format @@ -1843,44 +1859,44 @@ msgstr "Fusionner deux utilisateurs" msgid "Subscriptions" msgstr "Cotisations" -#: core/templates/core/user_tools.jinja:23 counter/views.py:449 +#: core/templates/core/user_tools.jinja:24 counter/views.py:449 #: counter/views.py:598 msgid "Counters" msgstr "Comptoirs" -#: core/templates/core/user_tools.jinja:26 +#: core/templates/core/user_tools.jinja:27 msgid "General management" msgstr "Gestion générale" -#: core/templates/core/user_tools.jinja:27 +#: core/templates/core/user_tools.jinja:28 msgid "General counters management" msgstr "Gestion générale des comptoirs" -#: core/templates/core/user_tools.jinja:28 +#: core/templates/core/user_tools.jinja:29 msgid "Products management" msgstr "Gestion des produits" -#: core/templates/core/user_tools.jinja:29 +#: core/templates/core/user_tools.jinja:30 msgid "Product types management" msgstr "Gestion des types de produit" -#: core/templates/core/user_tools.jinja:30 +#: core/templates/core/user_tools.jinja:31 #: counter/templates/counter/cash_summary_list.jinja:23 counter/views.py:469 msgid "Cash register summaries" msgstr "Relevés de caisse" -#: core/templates/core/user_tools.jinja:36 core/views/user.py:169 +#: core/templates/core/user_tools.jinja:37 core/views/user.py:169 #: counter/templates/counter/counter_list.jinja:18 #: counter/templates/counter/counter_list.jinja:33 #: counter/templates/counter/counter_list.jinja:48 msgid "Stats" msgstr "Stats" -#: core/templates/core/user_tools.jinja:45 +#: core/templates/core/user_tools.jinja:46 msgid "General accounting" msgstr "Comptabilité générale" -#: core/templates/core/user_tools.jinja:54 +#: core/templates/core/user_tools.jinja:55 msgid "Club account: " msgstr "Compte club : "