Commit 8dc6ed6f authored by Patrick's avatar Patrick
Browse files

Display products lists even for anonymous users

parent 216e330f
......@@ -12,7 +12,7 @@ from repanier.tools import *
def send(permanence_id, current_site_name):
translation.activate(settings.LANGUAGES[0][0])
translation.activate(settings.LANGUAGE_CODE)
permanence = Permanence.objects.get(id=permanence_id)
sender_email = settings.DEFAULT_FROM_EMAIL
sender_function = ""
......
......@@ -16,7 +16,7 @@ from repanier.xslx import xslx_order
from repanier.settings import *
def send(permanence_id, current_site_name):
translation.activate(settings.LANGUAGES[0][0])
translation.activate(settings.LANGUAGE_CODE)
permanence = Permanence.objects.get(id=permanence_id)
filename = (unicode(_("Order")) + u" - " + permanence.__unicode__() + u'.xlsx').encode('ascii',
errors='replace').replace(
......@@ -29,7 +29,8 @@ def send(permanence_id, current_site_name):
for staff in Staff.objects.filter(is_active=True):
cc_email_staff.append(staff.user.email)
if staff.is_reply_to_order_email:
sender_email = staff.user.username + '@repanier.be'
# sender_email = staff.user.username + '@repanier.be'
sender_email = staff.user.email
sender_function = staff.long_name
r = staff.customer_responsible
if r:
......@@ -77,8 +78,12 @@ def send(permanence_id, current_site_name):
long_profile_name = producer.long_profile_name if producer.long_profile_name is not None else producer.short_profile_name
html_content = unicode(_('Dear')) + " " + long_profile_name + ",<br/><br/>" + unicode(
_('In attachment, you will find the detail of our order for the')) + \
" " + unicode(permanence) + ".<br/><br/>" + unicode(
_('In case of impediment for delivering the order, please advertise me :')) + \
" " + unicode(permanence) + ".<br/><br/>" + \
unicode(_('WARNING: The command is present in duplicate in two separate tabs.<br/>')) + \
unicode(_('Once in the order of the products to be prepared and second once in the order of families to prepare.<br/>')) + \
unicode(_('Use only one of both.<br/>')) + \
"<br/>" + \
unicode(_('In case of impediment for delivering the order, please advertise me :')) + \
"<br/><br/>" + signature + \
"<br/>" + sender_function + \
"<br/>" + current_site_name
......@@ -105,19 +110,23 @@ def send(permanence_id, current_site_name):
customer_set = Customer.objects.filter(
purchase__permanence=permanence_id, represent_this_buyinggroup=False).order_by().distinct()
for customer in customer_set:
translation.activate(customer.language)
order_amount, wb = xslx_order.export_customer(permanence=permanence, customer=customer, wb=None)
if wb is not None:
translation.activate(customer.language)
if (order_amount - customer.balance) > 0:
please_pay = unicode(_('Please pay ')) + number_format(order_amount - customer.balance, 2) + ' &euro; ' + \
unicode(_('to the bank account number ')) + REPANIER_BANK_ACCOUNT + \
unicode(_(' with communication ')) + customer.short_basket_name + ", " + unicode(permanence)
else:
please_pay = unicode(_('Your account balance is sufficient.'))
long_basket_name = customer.long_basket_name if customer.long_basket_name is not None else customer.short_basket_name
html_content = unicode(_('Dear')) + " " + long_basket_name + ",<br/><br/>" + unicode(
_('In attachment, you will find the detail of your order for the')) + \
" " + unicode(permanence) + ".<br/><br/>" + \
unicode(_('The balance of your account as of ')) + customer.date_balance.strftime('%d-%m-%Y') + \
unicode(_(' is ')) + number_format(customer.balance, 2) + ' &euro;<br/>' + \
unicode(_('The amount of your order is ')) + number_format(order_amount, 2) + ' &euro;<br/>' + \
unicode(_('Please pay ')) + number_format(order_amount - customer.balance, 2) + ' &euro; ' + \
unicode(_('to the bank account number ')) + REPANIER_BANK_ACCOUNT + \
unicode(_(' with communication ')) + customer.short_basket_name + ", " + unicode(permanence) + \
unicode(_(' is ')) + number_format(customer.balance, 2) + ' &euro;.<br/>' + \
unicode(_('The amount of your order is ')) + number_format(order_amount, 2) + ' &euro;.<br/>' + \
please_pay + \
".<br/><br/>" + unicode(
_('In case of impediment for keeping your basket, please advertise me :')) + \
"<br/><br/>" + signature + \
......@@ -144,20 +153,20 @@ def send(permanence_id, current_site_name):
wb = xslx_order.export(permanence=permanence, wb=None)
if wb is not None:
translation.activate(settings.LANGUAGES[0][0])
translation.activate(settings.LANGUAGE_CODE)
to_email_board = []
for permanenceboard in PermanenceBoard.objects.filter(
permanence=permanence_id).order_by():
if permanenceboard.customer:
to_email_board.append(permanenceboard.customer.user.email)
html_content = unicode(_('Dear preparation team member')) + ",<br/><br/>" + unicode(
_('In attachment, you will find the preparation lists for the')) + \
" " + unicode(permanence) + ".<br/><br/>" + unicode(
_('In case of impediment, please advertise the other member of the preparation team :')) + \
"<br/><br/>" + board_message + \
"<br/><br/>" + signature + \
"<br/>" + sender_function + \
"<br/>" + current_site_name
html_content = unicode(_('Dear preparation team member')) + ",<br/><br/>" + \
unicode(_('In attachment, you will find the preparation lists for the')) + \
" " + unicode(permanence) + ".<br/><br/>" + \
unicode(_('In case of impediment, please advertise me :')) + \
"<br/><br/>" + board_message + \
"<br/><br/>" + signature + \
"<br/>" + sender_function + \
"<br/>" + current_site_name
# unicode(_('Or, at default a member of the staff team :')) + \
# "<br/>" + staff_composition + \
......
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Repanier\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-20 09:11+0200\n"
"PO-Revision-Date: 2014-09-20 14:01+0100\n"
"POT-Creation-Date: 2014-09-22 01:41+0200\n"
"PO-Revision-Date: 2014-09-22 15:52+0100\n"
"Last-Translator: Patrick Colmant <pcolmant@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: fr\n"
......@@ -213,7 +213,7 @@ msgid "Only one customer or one producer must be given."
msgstr "Soit un consommateur, soit un producteur doit être renseigné."
#: admin_filter.py:18 models.py:379 models.py:769 models.py:960
#: xslx/xslx_order.py:106
#: xslx/xslx_order.py:111
msgid "producers"
msgstr "Producteurs"
......@@ -247,7 +247,7 @@ msgstr "Paramètres"
msgid "Parameters ..."
msgstr "Paramètres ..."
#: cms_toolbar.py:31 xslx/xslx_order.py:86
#: cms_toolbar.py:31 xslx/xslx_order.py:90
msgid "Staff Member List"
msgstr "Equipe de gestion"
......@@ -685,7 +685,7 @@ msgid "last known price (/piece or /kg) from the producer price list"
msgstr "Prix au tarif du producteur (/pièce ou /kg ou /ℓ)"
#: models.py:616 models.py:1037 models.py:1087 models.py:1162
#: xslx/xslx_offer.py:42 xslx/xslx_offer.py:121 xslx/xslx_order.py:554
#: xslx/xslx_offer.py:42 xslx/xslx_offer.py:121 xslx/xslx_order.py:763
#: xslx/xslx_product.py:54 xslx/xslx_product.py:98 xslx/xslx_product.py:222
msgid "deposit"
msgstr "Consigne"
......@@ -1062,51 +1062,51 @@ msgstr "/ pièce"
msgid "/ pieces"
msgstr "/ pièces"
#: tools.py:102
#: tools.py:103
msgid "Piece(s) :"
msgstr "Pièce(s) :"
#: tools.py:104
#: tools.py:105
msgid "€ or kg :"
msgstr "€ ou kg :"
#: tools.py:106
#: tools.py:107
msgid "L :"
msgstr "ℓ :"
#: tools.py:108
#: tools.py:109
msgid "Kg :"
msgstr "kg :"
#: tools.py:113 tools.py:149 tools.py:167 tools.py:173
#: tools.py:117 tools.py:121 tools.py:158 tools.py:184 tools.py:197
msgid " piece"
msgstr " pièce"
#: tools.py:119 tools.py:160 tools.py:186 tools.py:199
msgid " pieces"
msgstr " pièces"
#: tools.py:117 tools.py:132 templatetags/repanier_tags.py:115
#: tools.py:125 tools.py:142 templatetags/repanier_tags.py:115
msgid " gr"
msgstr " gr"
#: tools.py:120 tools.py:135 templatetags/repanier_tags.py:118
#: tools.py:128 tools.py:145 templatetags/repanier_tags.py:118
msgid " kg"
msgstr " kg"
#: tools.py:123 tools.py:153 templatetags/repanier_tags.py:133
#: tools.py:131 tools.py:171 templatetags/repanier_tags.py:133
msgid " cl"
msgstr " cℓ"
#: tools.py:126 tools.py:156 templatetags/repanier_tags.py:136
#: tools.py:134 tools.py:174 templatetags/repanier_tags.py:136
msgid " l"
msgstr " ℓ"
#: tools.py:147 tools.py:165 tools.py:171 tools.py:176
msgid " piece"
msgstr " pièce"
#: tools.py:171
#: tools.py:197 tools.py:202
msgid " pc"
msgstr " pc"
#: tools.py:173 templatetags/repanier_tags.py:148
#: tools.py:199 tools.py:204 templatetags/repanier_tags.py:148
msgid " pcs"
msgstr "pcs"
......@@ -1114,7 +1114,11 @@ msgstr "pcs"
msgid "There is no more product's information"
msgstr "Il n'y a pas d'autre information sur ce produit."
#: views.py:302
#: views.py:101
msgid "Anonymous"
msgstr "Anonyme"
#: views.py:313
msgid "Other qty"
msgstr "Autre Qté"
......@@ -1125,8 +1129,8 @@ msgstr "Autre Qté"
msgid "Payment"
msgstr "Paiement"
#: email/email_invoice.py:54 email/email_invoice.py:97 email/email_order.py:75
#: email/email_order.py:109
#: email/email_invoice.py:54 email/email_invoice.py:97 email/email_order.py:78
#: email/email_order.py:122
msgid "Dear"
msgstr "Cher/Chère"
......@@ -1182,36 +1186,40 @@ msgstr "sont maintenant ouvertes."
msgid "Opening of orders"
msgstr "Ouverture des commandes"
#: email/email_order.py:21 email/email_order.py:83 email/email_order.py:124
#: email/email_order.py:21 email/email_order.py:90 email/email_order.py:135
msgid "Order"
msgstr "Commande"
#: email/email_order.py:76
#: email/email_order.py:79
msgid "In attachment, you will find the detail of our order for the"
msgstr ""
"En pièce jointe, vous trouverez le détail de la commande du groupe pour la"
#: email/email_order.py:78
msgid "In case of impediment for delivering the order, please advertise me :"
#: email/email_order.py:81
msgid "WARNING: The command is present in duplicate in two separate tabs.<br/>"
msgstr ""
"En cas d'imprévu ou d'impossibilité de nous fournir la marchandise, veuillez "
"me prévenir :"
"ATTENTION : La commande est présente en double, dans deux onglets distincts."
"<br/>"
#: email/email_order.py:110
msgid "In attachment, you will find the detail of your order for the"
msgstr "En pièce jointe, vous trouverez le détail de votre commande pour la"
#: email/email_order.py:112
msgid "The balance of your account as of "
msgstr "Le solde de votre compte en date du "
#: email/email_order.py:82
msgid ""
"Once in the order of the products to be prepared and second once in the "
"order of families to prepare.<br/>"
msgstr ""
"Une première fois dans l'ordre des produits à préparer ET une seconde fois "
"dans l'ordre des paniers à préparer.<br/>"
#: email/email_order.py:113
msgid " is "
msgstr " est de : "
#: email/email_order.py:83
msgid "Use only one of both.<br/>"
msgstr ""
"Veuillez n'utiliser que l'une des deux, celle qui vous convient le mieux.<br/"
">"
#: email/email_order.py:114
msgid "The amount of your order is "
msgstr "Le montant de votre commande est de : "
#: email/email_order.py:85
msgid "In case of impediment for delivering the order, please advertise me :"
msgstr ""
"En cas d'imprévu ou d'impossibilité de nous fournir la marchandise, veuillez "
"me prévenir :"
#: email/email_order.py:115
msgid "Please pay "
......@@ -1226,28 +1234,46 @@ msgid " with communication "
msgstr ", avec comme communication : "
#: email/email_order.py:119
msgid "Your account balance is sufficient."
msgstr "Le solde de votre compte est suffisant."
#: email/email_order.py:123
msgid "In attachment, you will find the detail of your order for the"
msgstr "En pièce jointe, vous trouverez le détail de votre commande pour la"
#: email/email_order.py:125
msgid "The balance of your account as of "
msgstr "Le solde de votre compte en date du "
#: email/email_order.py:126
msgid " is "
msgstr " est de : "
#: email/email_order.py:127
msgid "The amount of your order is "
msgstr "Le montant de votre commande est de : "
#: email/email_order.py:130
msgid "In case of impediment for keeping your basket, please advertise me :"
msgstr ""
"En cas d'imprévu ou d'impossibilité de venir chercher votre panier en temps "
"et en heure, veuillez me prévenir :"
#: email/email_order.py:150
#: email/email_order.py:161
msgid "Dear preparation team member"
msgstr "Cher membre de l'équipe de préparation"
#: email/email_order.py:151
#: email/email_order.py:162
msgid "In attachment, you will find the preparation lists for the"
msgstr "En pièce jointe, vous trouverez les listes de préparation pour la"
#: email/email_order.py:153
msgid ""
"In case of impediment, please advertise the other member of the preparation "
"team :"
#: email/email_order.py:164
msgid "In case of impediment, please advertise me :"
msgstr ""
"En cas d'imprévu ou d'impossibilité de participer à la permanence, veuillez "
"prévenir les autres membres de l'équipe de préparation :"
"En cas d'imprévu ou d'impossibilité de nous fournir la marchandise, veuillez "
"me prévenir :"
#: email/email_order.py:163
#: email/email_order.py:174
msgid "Permanence preparation list"
msgstr "Liste de préparation"
......@@ -1327,7 +1353,7 @@ msgstr ""
msgid "The offers are being generated."
msgstr "La permamence est en cours d'ouverture."
#: task/task_order.py:165 task/task_order.py:270
#: task/task_order.py:165 task/task_order.py:256
msgid ""
"The action has been canceled by the system and an email send to the site "
"administrator."
......@@ -1335,20 +1361,20 @@ msgstr ""
"L'action a été annulée par le système et un mail a été envoyé à son "
"administrateur."
#: task/task_order.py:168 task/task_order.py:273
#: task/task_order.py:168 task/task_order.py:259
#, python-format
msgid "Action refused by the system. Please, retry in %d minutes."
msgstr ""
"Action refusée par le système. Une opération est déjà en cours depuis peu. "
"Veuillez réessayer dans %d minutes."
#: task/task_order.py:248
#: task/task_order.py:234
msgid "The status of this permanence prohibit you to close it."
msgstr ""
"L'action a été annulée car elle est incompatible avec le statut de cette "
"permanence."
#: task/task_order.py:259
#: task/task_order.py:245
msgid "The orders are being closed."
msgstr "Les commandes sont clôturées."
......@@ -1433,7 +1459,7 @@ msgid " P "
msgstr " P "
#: templates/repanier/cache_part_d.html:9
#: templates/repanier/order_form.html:76
#: templates/repanier/order_form.html:92
#: templates/repanier/order_form_std.html:71
#: templates/repanier/order_form_std.html:104
msgid "All producers"
......@@ -1445,7 +1471,7 @@ msgid " D "
msgstr " R "
#: templates/repanier/cache_part_d.html:23
#: templates/repanier/order_form.html:89
#: templates/repanier/order_form.html:105
#: templates/repanier/order_form_std.html:82
#: templates/repanier/order_form_std.html:116
msgid "All departments"
......@@ -1542,20 +1568,21 @@ msgid "Compensation"
msgstr "(Compensation)"
#: templates/repanier/invoice_form.html:72
#: templates/repanier/invoicep_form.html:72 xslx/xslx_order.py:283
#: xslx/xslx_order.py:416
#: templates/repanier/invoicep_form.html:72 xslx/xslx_order.py:485
#: xslx/xslx_order.py:619
msgid "Deposit"
msgstr "Consigne"
#: templates/repanier/invoice_form.html:83 xslx/xslx_invoice.py:261
#: xslx/xslx_offer.py:36 xslx/xslx_offer.py:114 xslx/xslx_order.py:549
#: xslx/xslx_offer.py:36 xslx/xslx_offer.py:114 xslx/xslx_order.py:268
#: xslx/xslx_order.py:758
msgid "Producer"
msgstr "Producteur"
#: templates/repanier/invoice_form.html:86
#: templates/repanier/invoicep_form.html:86 xslx/xslx_invoice.py:266
#: xslx/xslx_offer.py:39 xslx/xslx_offer.py:118 xslx/xslx_order.py:280
#: xslx/xslx_order.py:413 xslx/xslx_order.py:550
#: xslx/xslx_offer.py:39 xslx/xslx_offer.py:118 xslx/xslx_order.py:270
#: xslx/xslx_order.py:482 xslx/xslx_order.py:616 xslx/xslx_order.py:759
msgid "Product"
msgstr "Produit"
......@@ -1583,17 +1610,22 @@ msgstr "Solde précédent"
msgid "Customer"
msgstr "Consommateur"
#: templates/repanier/order_form.html:69
#: templates/repanier/order_form_std.html:65
msgid "Purchased product"
msgstr "Mon panier"
#: templates/repanier/order_form.html:57
msgid "You need to log in"
msgstr ""
"La possiblité de commander ou de voir votre historique n'est valide que si "
"vous êtes inscrit et connecté.<br/>En tant que visiteur anonyme, vous pouvez "
"néanmoins parcourir la liste des produits en offre."
#: templates/repanier/order_form.html:136
#: templates/repanier/order_form_std.html:249
msgid "No offer found"
msgstr "Pas de produit trouvé"
#: templates/repanier/order_form.html:59
msgid "To see your order, you need to log in"
msgstr "Pour voir votre commande, vous devez d'abord vous connecter."
#: templates/repanier/order_form.html:61
msgid "Login me"
msgstr "Me connecter"
#: templates/repanier/order_form.html:141
#: templates/repanier/order_form.html:66
#: templates/repanier/order_form_std.html:318
#: templates/repanier/permanence_form.html:69
msgid "You are not allowed to order products"
......@@ -1601,68 +1633,78 @@ msgstr ""
"La fonctionnalité de commande n'est pas activée sur votre compte. Si vous "
"souhaitez commander, veuillez vous adresser aux responsables de votre groupe."
#: templates/repanier/order_form.html:156
#: templates/repanier/order_form.html:181
#: templates/repanier/order_form.html:85
#: templates/repanier/order_form_std.html:65
msgid "Purchased product"
msgstr "Mon panier"
#: templates/repanier/order_form.html:152
#: templates/repanier/order_form_std.html:249
msgid "No offer found"
msgstr "Pas de produit trouvé"
#: templates/repanier/order_form.html:169
#: templates/repanier/order_form.html:194
#: templates/repanier/order_form_std.html:213
#: templates/repanier/order_form_std.html:240
msgid "Close"
msgstr "Fermer"
#: templates/repanier/order_form.html:173
#: templates/repanier/order_form.html:186
#: templates/repanier/order_form_std.html:232
msgid "To order a bigger quantity, please contact your "
msgstr "Pour commander une quantité plus grande, veuillez contacter votre "
#: templates/repanier/order_form.html:196
#: templates/repanier/order_form.html:209
msgid "All"
msgstr "Tous"
#: templates/repanier/order_form.html:218
#: templates/repanier/order_form.html:231
#: templates/repanier/order_form_std.html:335
#: templates/repanier/order_form_std.html:370
#: templates/repanier/permanence_form.html:85
msgid "Page "
msgstr "Écran "
#: templates/repanier/order_form.html:218
#: templates/repanier/order_form.html:231
#: templates/repanier/order_form_std.html:335
#: templates/repanier/order_form_std.html:370
#: templates/repanier/permanence_form.html:85
msgid "of"
msgstr "/"
#: templates/repanier/order_form.html:249
#: templates/repanier/order_form.html:262
msgid "Retry1"
msgstr "Veuillez réessayer (1)"
#: templates/repanier/order_form.html:257
msgid "Retry2"
msgstr "Veuillez réessayer (2)"
#: templates/repanier/order_form.html:270
msgid "You may not order"
msgstr "Commande impossible"
#: templates/repanier/order_form.html:274
#: templates/repanier/order_form.html:287
msgid "Retry3"
msgstr "Veuillez réessayer (3)"
#: templates/repanier/order_form.html:288
#: templates/repanier/order_form.html:301
msgid "Retry5"
msgstr "Veuillez réessayer (5)"
#: templates/repanier/order_form.html:302
#: templates/repanier/order_form.html:303
#: templates/repanier/order_form.html:304
#: templates/repanier/order_form.html:315
#: templates/repanier/order_form.html:316
#: templates/repanier/order_form.html:317
msgid "Retry 6"
msgstr "Veuillez réessayer (6)"
#: templates/repanier/order_form.html:332
#: templates/repanier/order_form.html:345
msgid "Retry4"
msgstr "Veuillez réessayer (4)"
#: templates/repanier/order_form.html:361
#: templates/repanier/order_form.html:374
#: templates/repanier/order_form_std.html:307
msgid "Communication error"
msgstr "Erreur de connexion"
#: templates/repanier/order_form.html:362
#: templates/repanier/order_form.html:375
#: templates/repanier/order_form_std.html:308
msgid "Please close this window and retry."
msgstr "Veuillez fermer cette fenêtre et ressayer l\\'opération."
......@@ -1758,7 +1800,7 @@ msgstr "Nom"
msgid "Balance before"
msgstr "Solde précédent"
#: xslx/xslx_invoice.py:77 xslx/xslx_invoice.py:132
#: xslx/xslx_invoice.py:77 xslx/xslx_invoice.py:132 xslx/xslx_order.py:279
msgid "Prepared"
msgstr "Préparé"
......@@ -1766,8 +1808,8 @@ msgstr "Préparé"
msgid "Balance after"
msgstr "Solde final"
#: xslx/xslx_invoice.py:262 xslx/xslx_order.py:35 xslx/xslx_order.py:277
#: xslx/xslx_order.py:410 xslx/xslx_order.py:560
#: xslx/xslx_invoice.py:262 xslx/xslx_order.py:37 xslx/xslx_order.py:274
#: xslx/xslx_order.py:479 xslx/xslx_order.py:613 xslx/xslx_order.py:769
msgid "Basket"
msgstr "Panier"
......@@ -1776,12 +1818,12 @@ msgstr "Panier"
msgid "Department"
msgstr "Rayon"
#: xslx/xslx_invoice.py:267 xslx/xslx_order.py:278 xslx/xslx_order.py:411
#: xslx/xslx_order.py:551
#: xslx/xslx_invoice.py:267 xslx/xslx_order.py:480 xslx/xslx_order.py:614
#: xslx/xslx_order.py:760
msgid "Quantity"
msgstr "Quantité"
#: xslx/xslx_invoice.py:269 xslx/xslx_order.py:279 xslx/xslx_order.py:412
#: xslx/xslx_invoice.py:269
msgid "Unit"
msgstr "Unité"
......@@ -1789,14 +1831,14 @@ msgstr "Unité"
msgid "Unit invoiced price, deposit included"
msgstr "Prix unitaire (consigne comprise)"
#: xslx/xslx_invoice.py:272 xslx/xslx_order.py:556
#: xslx/xslx_invoice.py:272 xslx/xslx_order.py:765
msgid "Total invoiced price, deposit included"
msgstr "Total / ligne"
#: xslx/xslx_invoice.py:312 xslx/xslx_order.py:207 xslx/xslx_order.py:285
#: xslx/xslx_order.py:316 xslx/xslx_order.py:318 xslx/xslx_order.py:331
#: xslx/xslx_order.py:375 xslx/xslx_order.py:418 xslx/xslx_order.py:455
#: xslx/xslx_order.py:468 xslx/xslx_order.py:571 xslx/xslx_order.py:619
#: xslx/xslx_invoice.py:312 xslx/xslx_order.py:404 xslx/xslx_order.py:487
#: xslx/xslx_order.py:521 xslx/xslx_order.py:523 xslx/xslx_order.py:536
#: xslx/xslx_order.py:580 xslx/xslx_order.py:621 xslx/xslx_order.py:658
#: xslx/xslx_order.py:671 xslx/xslx_order.py:780 xslx/xslx_order.py:828
msgid "Total Price"
msgstr "Prix total"
......@@ -1808,8 +1850,8 @@ msgstr "Rapport comptable"
msgid "Planned"
msgstr "Planifié"
#: xslx/xslx_offer.py:40 xslx/xslx_offer.py:119 xslx/xslx_order.py:281
#: xslx/xslx_order.py:414 xslx/xslx_order.py:552
#: xslx/xslx_offer.py:40 xslx/xslx_offer.py:119 xslx/xslx_order.py:483
#: xslx/xslx_order.py:617 xslx/xslx_order.py:761
msgid "Unit Price"
msgstr "Prix tarif"
......@@ -1817,43 +1859,63 @@ msgstr "Prix tarif"
msgid "Preview"
msgstr "Prévisualisation"
#: xslx/xslx_order.py:36
#: xslx/xslx_order.py:38
msgid "Family"
msgstr "Famille"
#: xslx/xslx_order.py:37
#: xslx/xslx_order.py:39
msgid "Phone1"
msgstr "Tél."
#: xslx/xslx_order.py:38
#: xslx/xslx_order.py:40
msgid "Phone2"
msgstr "Tél."