mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-10-31 00:53:08 +00:00 
			
		
		
		
	Some templating and migration fix
This commit is contained in:
		
							
								
								
									
										34
									
								
								accounting/migrations/0004_auto_20160824_2145.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								accounting/migrations/0004_auto_20160824_2145.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| from django.db import migrations, models | ||||
|  | ||||
|  | ||||
| class Migration(migrations.Migration): | ||||
|  | ||||
|     dependencies = [ | ||||
|         ('accounting', '0003_auto_20160824_1732'), | ||||
|     ] | ||||
|  | ||||
|     operations = [ | ||||
|         migrations.AlterModelOptions( | ||||
|             name='accountingtype', | ||||
|             options={'ordering': ['movement_type', 'code'], 'verbose_name': 'accounting type'}, | ||||
|         ), | ||||
|         migrations.AlterModelOptions( | ||||
|             name='bankaccount', | ||||
|             options={'ordering': ['club', 'name'], 'verbose_name': 'Bank account'}, | ||||
|         ), | ||||
|         migrations.AlterModelOptions( | ||||
|             name='clubaccount', | ||||
|             options={'ordering': ['bank_account', 'name'], 'verbose_name': 'Club account'}, | ||||
|         ), | ||||
|         migrations.AlterModelOptions( | ||||
|             name='generaljournal', | ||||
|             options={'ordering': ['-start_date'], 'verbose_name': 'General journal'}, | ||||
|         ), | ||||
|         migrations.AlterModelOptions( | ||||
|             name='simplifiedaccountingtype', | ||||
|             options={'ordering': ['accounting_type__movement_type', 'accounting_type__code'], 'verbose_name': 'simplified type'}, | ||||
|         ), | ||||
|     ] | ||||
| @@ -48,6 +48,10 @@ class BankAccount(models.Model): | ||||
|     number = models.CharField(_('account number'), max_length=255, blank=True) | ||||
|     club = models.ForeignKey(Club, related_name="bank_accounts", verbose_name=_("club")) | ||||
|  | ||||
|     class Meta: | ||||
|         verbose_name = _("Bank account") | ||||
|         ordering = ['club', 'name'] | ||||
|  | ||||
|     def is_owned_by(self, user): | ||||
|         """ | ||||
|         Method to see if that object can be edited by the given user | ||||
| @@ -70,6 +74,10 @@ class ClubAccount(models.Model): | ||||
|     club = models.ForeignKey(Club, related_name="club_account", verbose_name=_("club")) | ||||
|     bank_account = models.ForeignKey(BankAccount, related_name="club_accounts", verbose_name=_("bank account")) | ||||
|  | ||||
|     class Meta: | ||||
|         verbose_name = _("Club account") | ||||
|         ordering = ['bank_account', 'name'] | ||||
|  | ||||
|     def is_owned_by(self, user): | ||||
|         """ | ||||
|         Method to see if that object can be edited by the given user | ||||
| @@ -118,6 +126,10 @@ class GeneralJournal(models.Model): | ||||
|     amount = CurrencyField(_('amount'), default=0) | ||||
|     effective_amount = CurrencyField(_('effective_amount'), default=0) | ||||
|  | ||||
|     class Meta: | ||||
|         verbose_name = _("General journal") | ||||
|         ordering = ['-start_date'] | ||||
|  | ||||
|     def is_owned_by(self, user): | ||||
|         """ | ||||
|         Method to see if that object can be edited by the given user | ||||
| @@ -259,10 +271,12 @@ class AccountingType(models.Model): | ||||
|                 ], | ||||
|             ) | ||||
|     label = models.CharField(_('label'), max_length=128) | ||||
|     movement_type = models.CharField(_('movement type'), choices=[('CREDIT', 'Credit'), ('DEBIT', 'Debit'), ('NEUTRAL', 'Neutral')], max_length=12) | ||||
|     movement_type = models.CharField(_('movement type'), choices=[('CREDIT', _('Credit')), ('DEBIT', _('Debit')), | ||||
|             ('NEUTRAL', _('Neutral'))], max_length=12) | ||||
|  | ||||
|     class Meta: | ||||
|         verbose_name = _("accounting type") | ||||
|         ordering = ['movement_type', 'code'] | ||||
|  | ||||
|     def is_owned_by(self, user): | ||||
|         """ | ||||
| @@ -276,7 +290,7 @@ class AccountingType(models.Model): | ||||
|         return reverse('accounting:type_list') | ||||
|  | ||||
|     def __str__(self): | ||||
|         return self.code+" - "+self.movement_type+" - "+self.label | ||||
|         return self.code+" - "+self.get_movement_type_display()+" - "+self.label | ||||
|  | ||||
| class SimplifiedAccountingType(models.Model): | ||||
|     """ | ||||
| @@ -288,6 +302,7 @@ class SimplifiedAccountingType(models.Model): | ||||
|  | ||||
|     class Meta: | ||||
|         verbose_name = _("simplified type") | ||||
|         ordering = ['accounting_type__movement_type', 'accounting_type__code'] | ||||
|  | ||||
|     @property | ||||
|     def movement_type(self): | ||||
| @@ -300,5 +315,5 @@ class SimplifiedAccountingType(models.Model): | ||||
|         return reverse('accounting:simple_type_list') | ||||
|  | ||||
|     def __str__(self): | ||||
|         return self.label+" - "+self.accounting_type.code+" - "+self.get_movement_type_display() | ||||
|         return self.get_movement_type_display()+" - "+self.accounting_type.code+" - "+self.label | ||||
|  | ||||
|   | ||||
| @@ -11,6 +11,9 @@ | ||||
|     </p> | ||||
|     <hr> | ||||
|     <h2>{% trans %}Bank account: {% endtrans %}{{ object.name }}</h2> | ||||
|     {% if user.is_root and not object.club_accounts.exists() %} | ||||
|     <a href="{{ url('accounting:bank_delete', b_account_id=object.id) }}">{% trans %}Delete{% endtrans %}</a> | ||||
|     {% endif %} | ||||
|     <h4>{% trans %}Infos{% endtrans %}</h4> | ||||
|     <ul> | ||||
|         <li><strong>{% trans %}IBAN: {% endtrans %}</strong>{{ object.iban }}</li> | ||||
| @@ -21,9 +24,6 @@ | ||||
|     {% for c in object.club_accounts.all() %} | ||||
|         <li><a href="{{ url('accounting:club_details', c_account_id=c.id) }}">{{ c }}</a> | ||||
|             - <a href="{{ url('accounting:club_edit', c_account_id=c.id) }}">{% trans %}Edit{% endtrans %}</a> | ||||
|             {% if user.is_root %} | ||||
|             - <a href="{{ url('accounting:club_delete', c_account_id=c.id) }}">{% trans %}Delete{% endtrans %}</a> | ||||
|             {% endif %} | ||||
|             </li> | ||||
|     {% endfor %} | ||||
|     </ul> | ||||
|   | ||||
| @@ -19,9 +19,6 @@ | ||||
|             {% for a in object_list  %} | ||||
|             <li><a href="{{ url('accounting:bank_details', b_account_id=a.id) }}">{{ a }}</a> | ||||
|                 - <a href="{{ url('accounting:bank_edit', b_account_id=a.id) }}">{% trans %}Edit{% endtrans %}</a> | ||||
|                 {% if user.is_root %} | ||||
|                 - <a href="{{ url('accounting:bank_delete', b_account_id=a.id) }}">{% trans %}Delete{% endtrans %}</a> | ||||
|                 {% endif %} | ||||
|             </li> | ||||
|             {% endfor %} | ||||
|         </ul> | ||||
|   | ||||
| @@ -12,6 +12,9 @@ | ||||
|     </p> | ||||
|     <hr> | ||||
|     <h2>{% trans %}Club account:{% endtrans %} {{ object.name }}</h2> | ||||
|     {% if user.is_root and not object.journals.exists() %} | ||||
|     <a href="{{ url('accounting:club_delete', c_account_id=object.id) }}">{% trans %}Delete{% endtrans %}</a> | ||||
|     {% endif %} | ||||
|     {% if not object.has_open_journal() %} | ||||
|     <p><a href="{{ url('accounting:journal_new') }}?parent={{ object.id }}">{% trans %}New journal{% endtrans %}</a></p> | ||||
|     {% else %} | ||||
|   | ||||
| @@ -5,6 +5,14 @@ | ||||
| {% endblock %} | ||||
|  | ||||
| {% block content %} | ||||
| <p> | ||||
| <a href="{{ url('accounting:bank_list') }}">{% trans %}Accounting{% endtrans %}</a> > | ||||
| <a href="{{ url('accounting:bank_details', b_account_id=object.club_account.bank_account.id) }}">{{object.club_account.bank_account }}</a> > | ||||
| <a href="{{ url('accounting:club_details', c_account_id=object.club_account.id) }}">{{ object.club_account }}</a> > | ||||
| <a href="{{ url('accounting:journal_details', j_id=object.id) }}">{{ object.name }}</a> > | ||||
| {% trans %}Edit operation{% endtrans %} | ||||
| </p> | ||||
| <hr> | ||||
| <h2>{% trans %}Edit operation{% endtrans %}</h2> | ||||
| <form action="" method="post"> | ||||
|     {% csrf_token %} | ||||
| @@ -12,24 +20,12 @@ | ||||
|     {{ form.target_id }} | ||||
|     <p>{{ form.amount.errors }}<label for="{{ form.amount.name }}">{{ form.amount.label }}</label> {{ form.amount }}</p> | ||||
|     <p>{{ form.remark.errors }}<label for="{{ form.remark.name }}">{{ form.remark.label }}</label> {{ form.remark }}</p> | ||||
|     <p>{{ form.target_type.errors }}<label for="{{ form.target_type.name }}">{{ form.target_type.label }}</label> </p> | ||||
|     {% for choice in form.target_type %} | ||||
|         {% if choice.choice_value != "" %} | ||||
|         {{ choice }} | ||||
|         {% if choice.choice_value == "USER" %} | ||||
|             {{ form.user }} | ||||
|         {% elif choice.choice_value == "CLUB" %} | ||||
|             {{ form.club }} | ||||
|         {% elif choice.choice_value == "ACCOUNT" %} | ||||
|             {{ form.club_account }} | ||||
|         {% elif choice.choice_value == "COMPANY" %} | ||||
|             {{ form.company }} | ||||
|         {% elif choice.choice_value == "OTHER" %} | ||||
|             {{ form.target_label }} | ||||
|         {% endif %} | ||||
|         {% else %} | ||||
|         {% endif %} | ||||
|     {% endfor %} | ||||
|     <p>{{ form.target_type.errors }}<label for="{{ form.target_type.name }}">{{ form.target_type.label }}</label> {{ form.target_type }}</p> | ||||
|         {{ form.user }} | ||||
|         {{ form.club }} | ||||
|         {{ form.club_account }} | ||||
|         {{ form.company }} | ||||
|         {{ form.target_label }} | ||||
|     <p>{{ form.date.errors }}<label for="{{ form.date.name }}">{{ form.date.label }}</label> {{ form.date }}</p> | ||||
|     <p>{{ form.mode.errors }}<label for="{{ form.mode.name }}">{{ form.mode.label }}</label> {{ form.mode }}</p> | ||||
|     <p>{{ form.cheque_number.errors }}<label for="{{ form.cheque_number.name }}">{{ form.cheque_number.label }}</label> {{ | ||||
| @@ -48,7 +44,55 @@ | ||||
|     {{ super() }} | ||||
| <script> | ||||
| $( function() { | ||||
| } ); | ||||
|         var target_type = $('#id_target_type'); | ||||
|         var user = $('#id_user_wrapper'); | ||||
|         var club = $('#id_club_wrapper'); | ||||
|         var club_account = $('#id_club_account_wrapper'); | ||||
|         var company = $('#id_company_wrapper'); | ||||
|         var other = $('#id_target_label'); | ||||
|         function update_targets () { | ||||
|             if (target_type.val() == "USER") { | ||||
|                 console.log(user); | ||||
|                 user.show(); | ||||
|                 club.hide(); | ||||
|                 club_account.hide(); | ||||
|                 company.hide(); | ||||
|                 other.hide(); | ||||
|             } else if (target_type.val() == "ACCOUNT") { | ||||
|                 club_account.show(); | ||||
|                 user.hide(); | ||||
|                 club.hide(); | ||||
|                 company.hide(); | ||||
|                 other.hide(); | ||||
|             } else if (target_type.val() == "CLUB") { | ||||
|                 club.show(); | ||||
|                 user.hide(); | ||||
|                 club_account.hide(); | ||||
|                 company.hide(); | ||||
|                 other.hide(); | ||||
|             } else if (target_type.val() == "COMPANY") { | ||||
|                 company.show(); | ||||
|                 user.hide(); | ||||
|                 club_account.hide(); | ||||
|                 club.hide(); | ||||
|                 other.hide(); | ||||
|             } else if (target_type.val() == "OTHER") { | ||||
|                 other.show(); | ||||
|                 user.hide(); | ||||
|                 club.hide(); | ||||
|                 club_account.hide(); | ||||
|                 company.hide(); | ||||
|             } else { | ||||
|                 company.hide(); | ||||
|                 user.hide(); | ||||
|                 club_account.hide(); | ||||
|                 club.hide(); | ||||
|                 other.hide(); | ||||
|             } | ||||
|         } | ||||
|         update_targets(); | ||||
|         target_type.change(update_targets); | ||||
|         } ); | ||||
| </script> | ||||
| {% endblock %} | ||||
|  | ||||
|   | ||||
| @@ -202,7 +202,6 @@ class OperationForm(forms.ModelForm): | ||||
|                 'target_id': HiddenInput, | ||||
|                 'date': SelectDate, | ||||
|                 'invoice': SelectFile, | ||||
|                 'target_type': forms.RadioSelect, | ||||
|                 } | ||||
|     user = AutoCompleteSelectField('users', help_text=None, required=False) | ||||
|     club_account = AutoCompleteSelectField('club_accounts', help_text=None, required=False) | ||||
| @@ -272,11 +271,18 @@ class OperationCreateView(CanCreateMixin, CreateView): | ||||
|     def get_initial(self): | ||||
|         ret = super(OperationCreateView, self).get_initial() | ||||
|         if 'parent' in self.request.GET.keys(): | ||||
|             obj = GeneralJournal.objects.filter(id=int(self.request.GET['parent'])).first() | ||||
|             if obj is not None: | ||||
|                 ret['journal'] = obj.id | ||||
|             self.journal = GeneralJournal.objects.filter(id=int(self.request.GET['parent'])).first() | ||||
|             if self.journal is not None: | ||||
|                 ret['journal'] = self.journal.id | ||||
|         return ret | ||||
|  | ||||
|     def get_context_data(self, **kwargs): | ||||
|         """ Add journal to the context """ | ||||
|         kwargs = super(OperationCreateView, self).get_context_data(**kwargs) | ||||
|         if self.journal: | ||||
|             kwargs['object'] = self.journal | ||||
|         return kwargs | ||||
|  | ||||
| class OperationEditView(CanEditMixin, UpdateView): | ||||
|     """ | ||||
|     An edit view, working as detail for the moment | ||||
| @@ -286,6 +292,12 @@ class OperationEditView(CanEditMixin, UpdateView): | ||||
|     form_class = OperationForm | ||||
|     template_name = 'accounting/operation_edit.jinja' | ||||
|  | ||||
|     def get_context_data(self, **kwargs): | ||||
|         """ Add journal to the context """ | ||||
|         kwargs = super(OperationCreateView, self).get_context_data(**kwargs) | ||||
|         kwargs['object'] = self.object.journal | ||||
|         return kwargs | ||||
|  | ||||
| # Company views | ||||
|  | ||||
| class CompanyCreateView(CanCreateMixin, CreateView): | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| from django.core.exceptions import PermissionDenied | ||||
| from ajax_select import register, LookupChannel | ||||
|  | ||||
| from core.views.site import search_user | ||||
| @@ -6,8 +7,13 @@ from club.models import Club | ||||
| from counter.models import Product, Counter | ||||
| from accounting.models import ClubAccount, Company | ||||
|  | ||||
| class RightManagedLookupChannel(LookupChannel): | ||||
|     def check_auth(self, request): | ||||
|         if not request.user.subscribed: | ||||
|             raise PermissionDenied | ||||
|  | ||||
| @register('users') | ||||
| class UsersLookup(LookupChannel): | ||||
| class UsersLookup(RightManagedLookupChannel): | ||||
|     model = User | ||||
|  | ||||
|     def get_query(self, q, request): | ||||
| @@ -20,7 +26,7 @@ class UsersLookup(LookupChannel): | ||||
|         return item.get_display_name() | ||||
|  | ||||
| @register('groups') | ||||
| class GroupsLookup(LookupChannel): | ||||
| class GroupsLookup(RightManagedLookupChannel): | ||||
|     model = Group | ||||
|  | ||||
|     def get_query(self, q, request): | ||||
| @@ -33,7 +39,7 @@ class GroupsLookup(LookupChannel): | ||||
|         return item.name | ||||
|  | ||||
| @register('clubs') | ||||
| class ClubLookup(LookupChannel): | ||||
| class ClubLookup(RightManagedLookupChannel): | ||||
|     model = Club | ||||
|  | ||||
|     def get_query(self, q, request): | ||||
| @@ -46,7 +52,7 @@ class ClubLookup(LookupChannel): | ||||
|         return item.name | ||||
|  | ||||
| @register('counters') | ||||
| class CountersLookup(LookupChannel): | ||||
| class CountersLookup(RightManagedLookupChannel): | ||||
|     model = Counter | ||||
|  | ||||
|     def get_query(self, q, request): | ||||
| @@ -56,7 +62,7 @@ class CountersLookup(LookupChannel): | ||||
|         return item.name | ||||
|  | ||||
| @register('products') | ||||
| class ProductsLookup(LookupChannel): | ||||
| class ProductsLookup(RightManagedLookupChannel): | ||||
|     model = Product | ||||
|  | ||||
|     def get_query(self, q, request): | ||||
| @@ -66,7 +72,7 @@ class ProductsLookup(LookupChannel): | ||||
|         return item.name | ||||
|  | ||||
| @register('club_accounts') | ||||
| class ClubAccountLookup(LookupChannel): | ||||
| class ClubAccountLookup(RightManagedLookupChannel): | ||||
|     model = ClubAccount | ||||
|  | ||||
|     def get_query(self, q, request): | ||||
| @@ -76,7 +82,7 @@ class ClubAccountLookup(LookupChannel): | ||||
|         return item.name | ||||
|  | ||||
| @register('companies') | ||||
| class CompaniesLookup(LookupChannel): | ||||
| class CompaniesLookup(RightManagedLookupChannel): | ||||
|     model = Company | ||||
|  | ||||
|     def get_query(self, q, request): | ||||
|   | ||||
| @@ -377,11 +377,18 @@ class User(AbstractBaseUser): | ||||
|             escape(self.get_display_name()), | ||||
|             ) | ||||
|  | ||||
|     @property | ||||
|     def subscribed(self): | ||||
|         return self.is_in_group(settings.SITH_MAIN_MEMBERS_GROUP) | ||||
|  | ||||
| class AnonymousUser(AuthAnonymousUser): | ||||
|     def __init__(self, request): | ||||
|         super(AnonymousUser, self).__init__() | ||||
|  | ||||
|     @property | ||||
|     def subscribed(self): | ||||
|         return False | ||||
|  | ||||
|     def is_in_group(self, group_name): | ||||
|         """ | ||||
|         The anonymous user is only the public group | ||||
|   | ||||
| @@ -38,6 +38,7 @@ | ||||
|         <div id="language_chooser"> | ||||
|             {% for language in LANGUAGES %} | ||||
|             <form action="{{ url('set_language') }}" method="post">{% csrf_token %} | ||||
|                 <input name="next" value="{{ request.path }}" type="hidden" /> | ||||
|                 <input name="language" value="{{ language[0] }}" type="hidden" /> | ||||
|                 <input type="submit" value="{{ language[1]}}" /> | ||||
|             </form> | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| @@ -6,7 +6,7 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2016-08-24 16:57+0200\n" | ||||
| "POT-Creation-Date: 2016-08-24 21:38+0200\n" | ||||
| "PO-Revision-Date: 2016-07-18\n" | ||||
| "Last-Translator: Skia <skia@libskia.so>\n" | ||||
| "Language-Team: AE info <ae.info@utbm.fr>\n" | ||||
| @@ -16,8 +16,8 @@ msgstr "" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "Plural-Forms: nplurals=2; plural=(n > 1);\n" | ||||
|  | ||||
| #: accounting/models.py:34 accounting/models.py:46 accounting/models.py:69 | ||||
| #: accounting/models.py:115 club/models.py:18 counter/models.py:52 | ||||
| #: accounting/models.py:34 accounting/models.py:46 accounting/models.py:73 | ||||
| #: accounting/models.py:123 club/models.py:18 counter/models.py:52 | ||||
| #: counter/models.py:77 counter/models.py:111 launderette/models.py:15 | ||||
| #: launderette/models.py:60 launderette/models.py:85 | ||||
| msgid "name" | ||||
| @@ -35,127 +35,139 @@ msgstr "IBAN" | ||||
| msgid "account number" | ||||
| msgstr "numero de compte" | ||||
|  | ||||
| #: accounting/models.py:49 accounting/models.py:70 club/models.py:146 | ||||
| #: accounting/models.py:49 accounting/models.py:74 club/models.py:146 | ||||
| #: counter/models.py:86 | ||||
| msgid "club" | ||||
| msgstr "club" | ||||
|  | ||||
| #: accounting/models.py:71 | ||||
| #: accounting/models.py:52 | ||||
| msgid "Bank account" | ||||
| msgstr "Compte en banque" | ||||
|  | ||||
| #: accounting/models.py:75 | ||||
| msgid "bank account" | ||||
| msgstr "compte en banque" | ||||
|  | ||||
| #: accounting/models.py:106 | ||||
| #: accounting/models.py:78 | ||||
| msgid "Club account" | ||||
| msgstr "Compte club" | ||||
|  | ||||
| #: accounting/models.py:114 | ||||
| #, python-format | ||||
| msgid "%(club_account)s on %(bank_account)s" | ||||
| msgstr "%(club_account)s sur %(bank_account)s" | ||||
|  | ||||
| #: accounting/models.py:113 club/models.py:147 counter/models.py:297 | ||||
| #: accounting/models.py:121 club/models.py:147 counter/models.py:297 | ||||
| #: launderette/models.py:122 | ||||
| msgid "start date" | ||||
| msgstr "date de début" | ||||
|  | ||||
| #: accounting/models.py:114 club/models.py:148 counter/models.py:298 | ||||
| #: accounting/models.py:122 club/models.py:148 counter/models.py:298 | ||||
| msgid "end date" | ||||
| msgstr "date de fin" | ||||
|  | ||||
| #: accounting/models.py:116 | ||||
| #: accounting/models.py:124 | ||||
| msgid "is closed" | ||||
| msgstr "est fermé" | ||||
|  | ||||
| #: accounting/models.py:117 | ||||
| #: accounting/models.py:125 | ||||
| msgid "club account" | ||||
| msgstr "compte club" | ||||
|  | ||||
| #: accounting/models.py:118 accounting/models.py:157 counter/models.py:25 | ||||
| #: accounting/models.py:126 accounting/models.py:169 counter/models.py:25 | ||||
| #: counter/models.py:212 | ||||
| msgid "amount" | ||||
| msgstr "montant" | ||||
|  | ||||
| #: accounting/models.py:119 | ||||
| #: accounting/models.py:127 | ||||
| msgid "effective_amount" | ||||
| msgstr "montant effectif" | ||||
|  | ||||
| #: accounting/models.py:155 | ||||
| #: accounting/models.py:130 | ||||
| msgid "General journal" | ||||
| msgstr "Classeur" | ||||
|  | ||||
| #: accounting/models.py:167 | ||||
| msgid "number" | ||||
| msgstr "numéro" | ||||
|  | ||||
| #: accounting/models.py:156 | ||||
| #: accounting/models.py:168 | ||||
| msgid "journal" | ||||
| msgstr "classeur" | ||||
|  | ||||
| #: accounting/models.py:158 core/models.py:430 core/models.py:706 | ||||
| #: accounting/models.py:170 core/models.py:437 core/models.py:713 | ||||
| #: counter/models.py:215 counter/models.py:261 eboutic/models.py:14 | ||||
| #: eboutic/models.py:47 | ||||
| msgid "date" | ||||
| msgstr "date" | ||||
|  | ||||
| #: accounting/models.py:159 | ||||
| #: accounting/models.py:171 | ||||
| msgid "comment" | ||||
| msgstr "commentaire" | ||||
|  | ||||
| #: accounting/models.py:160 counter/models.py:216 counter/models.py:262 | ||||
| #: accounting/models.py:172 counter/models.py:216 counter/models.py:262 | ||||
| #: subscription/models.py:34 | ||||
| msgid "payment method" | ||||
| msgstr "méthode de paiement" | ||||
|  | ||||
| #: accounting/models.py:161 | ||||
| #: accounting/models.py:173 | ||||
| msgid "cheque number" | ||||
| msgstr "numéro de chèque" | ||||
|  | ||||
| #: accounting/models.py:162 eboutic/models.py:115 | ||||
| #: accounting/models.py:174 eboutic/models.py:115 | ||||
| msgid "invoice" | ||||
| msgstr "facture" | ||||
|  | ||||
| #: accounting/models.py:163 | ||||
| #: accounting/models.py:175 | ||||
| msgid "is done" | ||||
| msgstr "est fait" | ||||
|  | ||||
| #: accounting/models.py:165 | ||||
| #: accounting/models.py:177 | ||||
| msgid "simple type" | ||||
| msgstr "type simplifié" | ||||
|  | ||||
| #: accounting/models.py:167 accounting/models.py:265 | ||||
| #: accounting/models.py:179 accounting/models.py:278 | ||||
| msgid "accounting type" | ||||
| msgstr "type comptable" | ||||
|  | ||||
| #: accounting/models.py:168 | ||||
| #: accounting/models.py:180 | ||||
| msgid "target type" | ||||
| msgstr "type de cible" | ||||
|  | ||||
| #: accounting/models.py:169 | ||||
| #: accounting/models.py:181 | ||||
| #: launderette/templates/launderette/launderette_admin.jinja:44 | ||||
| msgid "User" | ||||
| msgstr "Utilisateur" | ||||
|  | ||||
| #: accounting/models.py:169 club/templates/club/club_detail.jinja:4 | ||||
| #: accounting/models.py:181 club/templates/club/club_detail.jinja:4 | ||||
| msgid "Club" | ||||
| msgstr "Club" | ||||
|  | ||||
| #: accounting/models.py:169 core/templates/core/user_base.jinja:18 | ||||
| #: accounting/models.py:181 core/templates/core/user_base.jinja:18 | ||||
| msgid "Account" | ||||
| msgstr "Compte" | ||||
|  | ||||
| #: accounting/models.py:169 | ||||
| #: accounting/models.py:181 | ||||
| msgid "Company" | ||||
| msgstr "Entreprise" | ||||
|  | ||||
| #: accounting/models.py:169 sith/settings.py:284 sith/settings_sample.py:267 | ||||
| #: accounting/models.py:181 sith/settings.py:289 sith/settings_sample.py:272 | ||||
| msgid "Other" | ||||
| msgstr "Autre" | ||||
|  | ||||
| #: accounting/models.py:170 | ||||
| #: accounting/models.py:182 | ||||
| msgid "target id" | ||||
| msgstr "id de la cible" | ||||
|  | ||||
| #: accounting/models.py:171 | ||||
| #: accounting/models.py:183 | ||||
| msgid "target label" | ||||
| msgstr "nom de la cible" | ||||
|  | ||||
| #: accounting/models.py:172 | ||||
| #: accounting/models.py:184 | ||||
| msgid "linked operation" | ||||
| msgstr "opération liée" | ||||
|  | ||||
| #: accounting/models.py:188 | ||||
| #: accounting/models.py:200 | ||||
| #, python-format | ||||
| msgid "" | ||||
| "The date can not be before the start date of the journal, which is\n" | ||||
| @@ -164,16 +176,16 @@ msgstr "" | ||||
| "La date ne peut pas être avant la date de début du journal, qui est\n" | ||||
| "%(start_date)s." | ||||
|  | ||||
| #: accounting/models.py:191 | ||||
| #: accounting/models.py:203 | ||||
| msgid "Target does not exists" | ||||
| msgstr "La cible n'existe pas." | ||||
|  | ||||
| #: accounting/models.py:193 | ||||
| #: accounting/models.py:205 | ||||
| msgid "Please add a target label if you set no existing target" | ||||
| msgstr "" | ||||
| "Merci d'ajouter un nom de cible si vous ne spécifiez pas de cible existante" | ||||
|  | ||||
| #: accounting/models.py:195 | ||||
| #: accounting/models.py:207 | ||||
| msgid "" | ||||
| "You need to provide ether a simplified accounting type or a standard " | ||||
| "accounting type" | ||||
| @@ -181,27 +193,39 @@ msgstr "" | ||||
| "Vous devez fournir soit un type comptable simplifié ou un type comptable " | ||||
| "standard" | ||||
|  | ||||
| #: accounting/models.py:256 counter/models.py:81 | ||||
| #: accounting/models.py:268 counter/models.py:81 | ||||
| msgid "code" | ||||
| msgstr "code" | ||||
|  | ||||
| #: accounting/models.py:258 | ||||
| #: accounting/models.py:270 | ||||
| msgid "An accounting type code contains only numbers" | ||||
| msgstr "Un code comptable ne contient que des numéros" | ||||
|  | ||||
| #: accounting/models.py:261 accounting/models.py:285 counter/models.py:253 | ||||
| #: accounting/models.py:273 accounting/models.py:299 counter/models.py:253 | ||||
| msgid "label" | ||||
| msgstr "intitulé" | ||||
|  | ||||
| #: accounting/models.py:262 | ||||
| #: accounting/models.py:274 | ||||
| msgid "movement type" | ||||
| msgstr "type de mouvement" | ||||
|  | ||||
| #: accounting/models.py:287 | ||||
| #: accounting/models.py:274 | ||||
| msgid "Credit" | ||||
| msgstr "Crédit" | ||||
|  | ||||
| #: accounting/models.py:274 | ||||
| msgid "Debit" | ||||
| msgstr "Débit" | ||||
|  | ||||
| #: accounting/models.py:275 | ||||
| msgid "Neutral" | ||||
| msgstr "Neutre" | ||||
|  | ||||
| #: accounting/models.py:301 | ||||
| msgid "simplified accounting types" | ||||
| msgstr "type simplifié" | ||||
|  | ||||
| #: accounting/models.py:290 | ||||
| #: accounting/models.py:304 | ||||
| msgid "simplified type" | ||||
| msgstr "type simplifié" | ||||
|  | ||||
| @@ -215,6 +239,7 @@ msgstr "Liste des types comptable" | ||||
| #: accounting/templates/accounting/bank_account_list.jinja:9 | ||||
| #: accounting/templates/accounting/club_account_details.jinja:9 | ||||
| #: accounting/templates/accounting/journal_details.jinja:9 | ||||
| #: accounting/templates/accounting/operation_edit.jinja:9 | ||||
| #: accounting/templates/accounting/simplifiedaccountingtype_list.jinja:9 | ||||
| #: core/templates/core/user_tools.jinja:39 | ||||
| msgid "Accounting" | ||||
| @@ -259,7 +284,7 @@ msgstr "Nouveau compte club" | ||||
| #: accounting/templates/accounting/bank_account_details.jinja:23 | ||||
| #: accounting/templates/accounting/bank_account_list.jinja:21 | ||||
| #: accounting/templates/accounting/club_account_details.jinja:50 | ||||
| #: accounting/templates/accounting/journal_details.jinja:68 | ||||
| #: accounting/templates/accounting/journal_details.jinja:66 | ||||
| #: club/templates/club/club_detail.jinja:7 core/templates/core/file.jinja:38 | ||||
| #: core/templates/core/page.jinja:31 core/templates/core/user_base.jinja:10 | ||||
| #: core/templates/core/user_tools.jinja:33 | ||||
| @@ -326,7 +351,7 @@ msgid "End" | ||||
| msgstr "Fin" | ||||
|  | ||||
| #: accounting/templates/accounting/club_account_details.jinja:26 | ||||
| #: accounting/templates/accounting/journal_details.jinja:29 | ||||
| #: accounting/templates/accounting/journal_details.jinja:28 | ||||
| #: core/templates/core/user_account.jinja:19 | ||||
| #: core/templates/core/user_account.jinja:78 | ||||
| msgid "Amount" | ||||
| @@ -341,17 +366,17 @@ msgid "Closed" | ||||
| msgstr "Fermé" | ||||
|  | ||||
| #: accounting/templates/accounting/club_account_details.jinja:29 | ||||
| #: accounting/templates/accounting/journal_details.jinja:37 | ||||
| #: accounting/templates/accounting/journal_details.jinja:36 | ||||
| msgid "Actions" | ||||
| msgstr "Actions" | ||||
|  | ||||
| #: accounting/templates/accounting/club_account_details.jinja:45 | ||||
| #: accounting/templates/accounting/journal_details.jinja:56 | ||||
| #: accounting/templates/accounting/journal_details.jinja:54 | ||||
| msgid "Yes" | ||||
| msgstr "Oui" | ||||
|  | ||||
| #: accounting/templates/accounting/club_account_details.jinja:47 | ||||
| #: accounting/templates/accounting/journal_details.jinja:58 | ||||
| #: accounting/templates/accounting/journal_details.jinja:56 | ||||
| msgid "No" | ||||
| msgstr "Non" | ||||
|  | ||||
| @@ -394,45 +419,41 @@ msgstr "No" | ||||
| msgid "Date" | ||||
| msgstr "Date" | ||||
|  | ||||
| #: accounting/templates/accounting/journal_details.jinja:28 | ||||
| #: core/templates/core/user_account.jinja:47 | ||||
| msgid "Label" | ||||
| msgstr "Intitulé" | ||||
|  | ||||
| #: accounting/templates/accounting/journal_details.jinja:30 | ||||
| #: accounting/templates/accounting/journal_details.jinja:29 | ||||
| msgid "Payment mode" | ||||
| msgstr "Méthode de paiement" | ||||
|  | ||||
| #: accounting/templates/accounting/journal_details.jinja:31 | ||||
| #: accounting/templates/accounting/journal_details.jinja:30 | ||||
| msgid "Target" | ||||
| msgstr "Cible" | ||||
|  | ||||
| #: accounting/templates/accounting/journal_details.jinja:32 | ||||
| #: accounting/templates/accounting/journal_details.jinja:31 | ||||
| msgid "Code" | ||||
| msgstr "Code" | ||||
|  | ||||
| #: accounting/templates/accounting/journal_details.jinja:33 | ||||
| #: accounting/templates/accounting/journal_details.jinja:32 | ||||
| msgid "Nature" | ||||
| msgstr "Nature" | ||||
|  | ||||
| #: accounting/templates/accounting/journal_details.jinja:34 | ||||
| #: accounting/templates/accounting/journal_details.jinja:33 | ||||
| msgid "Done" | ||||
| msgstr "Effectué" | ||||
|  | ||||
| #: accounting/templates/accounting/journal_details.jinja:35 | ||||
| #: accounting/templates/accounting/journal_details.jinja:34 | ||||
| msgid "Comment" | ||||
| msgstr "Commentaire" | ||||
|  | ||||
| #: accounting/templates/accounting/journal_details.jinja:36 | ||||
| #: accounting/templates/accounting/journal_details.jinja:35 | ||||
| msgid "File" | ||||
| msgstr "Fichier" | ||||
|  | ||||
| #: accounting/templates/accounting/operation_edit.jinja:4 | ||||
| #: accounting/templates/accounting/operation_edit.jinja:8 | ||||
| #: accounting/templates/accounting/operation_edit.jinja:13 | ||||
| #: accounting/templates/accounting/operation_edit.jinja:16 | ||||
| msgid "Edit operation" | ||||
| msgstr "Éditer l'opération" | ||||
|  | ||||
| #: accounting/templates/accounting/operation_edit.jinja:43 | ||||
| #: accounting/templates/accounting/operation_edit.jinja:39 | ||||
| #: club/templates/club/club_edit.jinja:8 | ||||
| #: club/templates/club/club_edit_prop.jinja:8 | ||||
| #: core/templates/core/create.jinja:12 core/templates/core/edit.jinja:12 | ||||
| @@ -866,109 +887,109 @@ msgstr "Un utilisateur de ce nom d'utilisateur existe déjà" | ||||
| msgid "Profile" | ||||
| msgstr "Profil" | ||||
|  | ||||
| #: core/models.py:407 | ||||
| #: core/models.py:414 | ||||
| msgid "Visitor" | ||||
| msgstr "Visiteur" | ||||
|  | ||||
| #: core/models.py:412 | ||||
| #: core/models.py:419 | ||||
| msgid "define if we show a users stats" | ||||
| msgstr "Definit si l'on montre les statistiques de l'utilisateur" | ||||
|  | ||||
| #: core/models.py:414 | ||||
| #: core/models.py:421 | ||||
| msgid "Show your account statistics to others" | ||||
| msgstr "Montrez vos statistiques de compte aux autres" | ||||
|  | ||||
| #: core/models.py:421 | ||||
| #: core/models.py:428 | ||||
| msgid "file name" | ||||
| msgstr "nom du fichier" | ||||
|  | ||||
| #: core/models.py:422 core/models.py:555 | ||||
| #: core/models.py:429 core/models.py:562 | ||||
| msgid "parent" | ||||
| msgstr "parent" | ||||
|  | ||||
| #: core/models.py:423 core/models.py:433 | ||||
| #: core/models.py:430 core/models.py:440 | ||||
| msgid "file" | ||||
| msgstr "fichier" | ||||
|  | ||||
| #: core/models.py:424 | ||||
| #: core/models.py:431 | ||||
| msgid "owner" | ||||
| msgstr "propriétaire" | ||||
|  | ||||
| #: core/models.py:425 core/models.py:561 | ||||
| #: core/models.py:432 core/models.py:568 | ||||
| msgid "edit group" | ||||
| msgstr "groupe d'édition" | ||||
|  | ||||
| #: core/models.py:426 core/models.py:562 | ||||
| #: core/models.py:433 core/models.py:569 | ||||
| msgid "view group" | ||||
| msgstr "groupe de vue" | ||||
|  | ||||
| #: core/models.py:427 | ||||
| #: core/models.py:434 | ||||
| msgid "is folder" | ||||
| msgstr "est un dossier" | ||||
|  | ||||
| #: core/models.py:428 | ||||
| #: core/models.py:435 | ||||
| msgid "mime type" | ||||
| msgstr "type mime" | ||||
|  | ||||
| #: core/models.py:429 | ||||
| #: core/models.py:436 | ||||
| msgid "size" | ||||
| msgstr "taille" | ||||
|  | ||||
| #: core/models.py:459 | ||||
| #: core/models.py:466 | ||||
| msgid "Character '/' not authorized in name" | ||||
| msgstr "Le caractère '/' n'est pas autorisé dans les noms de fichier" | ||||
|  | ||||
| #: core/models.py:462 core/models.py:467 | ||||
| #: core/models.py:469 core/models.py:474 | ||||
| msgid "Loop in folder tree" | ||||
| msgstr "Boucle dans l'arborescence des dossiers" | ||||
|  | ||||
| #: core/models.py:471 | ||||
| #: core/models.py:478 | ||||
| msgid "You can not make a file be a children of a non folder file" | ||||
| msgstr "" | ||||
| "Vous ne pouvez pas mettre un fichier enfant de quelque chose qui n'est pas " | ||||
| "un dossier" | ||||
|  | ||||
| #: core/models.py:475 | ||||
| #: core/models.py:482 | ||||
| msgid "Duplicate file" | ||||
| msgstr "Un fichier de ce nom existe déjà" | ||||
|  | ||||
| #: core/models.py:485 | ||||
| #: core/models.py:492 | ||||
| msgid "You must provide a file" | ||||
| msgstr "Vous devez fournir un fichier" | ||||
|  | ||||
| #: core/models.py:510 | ||||
| #: core/models.py:517 | ||||
| msgid "Folder: " | ||||
| msgstr "Dossier : " | ||||
|  | ||||
| #: core/models.py:512 | ||||
| #: core/models.py:519 | ||||
| msgid "File: " | ||||
| msgstr "Fichier : " | ||||
|  | ||||
| #: core/models.py:554 core/models.py:558 | ||||
| #: core/models.py:561 core/models.py:565 | ||||
| msgid "page name" | ||||
| msgstr "nom de la page" | ||||
|  | ||||
| #: core/models.py:559 | ||||
| #: core/models.py:566 | ||||
| msgid "owner group" | ||||
| msgstr "groupe propriétaire" | ||||
|  | ||||
| #: core/models.py:590 | ||||
| #: core/models.py:597 | ||||
| msgid "Duplicate page" | ||||
| msgstr "Une page de ce nom existe déjà" | ||||
|  | ||||
| #: core/models.py:596 | ||||
| #: core/models.py:603 | ||||
| msgid "Loop in page tree" | ||||
| msgstr "Boucle dans l'arborescence des pages" | ||||
|  | ||||
| #: core/models.py:703 | ||||
| #: core/models.py:710 | ||||
| msgid "revision" | ||||
| msgstr "révision" | ||||
|  | ||||
| #: core/models.py:704 | ||||
| #: core/models.py:711 | ||||
| msgid "page title" | ||||
| msgstr "titre de la page" | ||||
|  | ||||
| #: core/models.py:705 | ||||
| #: core/models.py:712 | ||||
| msgid "page content" | ||||
| msgstr "contenu de la page" | ||||
|  | ||||
| @@ -1009,27 +1030,27 @@ msgstr "Déconnexion" | ||||
| msgid "Search" | ||||
| msgstr "Recherche" | ||||
|  | ||||
| #: core/templates/core/base.jinja:40 core/templates/core/search.jinja:10 | ||||
| #: core/templates/core/base.jinja:51 core/templates/core/search.jinja:10 | ||||
| msgid "Users" | ||||
| msgstr "Utilisateurs" | ||||
|  | ||||
| #: core/templates/core/base.jinja:41 | ||||
| #: core/templates/core/base.jinja:52 | ||||
| msgid "Wiki" | ||||
| msgstr "Wiki" | ||||
|  | ||||
| #: core/templates/core/base.jinja:42 | ||||
| #: core/templates/core/base.jinja:53 | ||||
| msgid "Pages" | ||||
| msgstr "Pages" | ||||
|  | ||||
| #: core/templates/core/base.jinja:43 core/templates/core/search.jinja:18 | ||||
| #: core/templates/core/base.jinja:54 core/templates/core/search.jinja:18 | ||||
| msgid "Clubs" | ||||
| msgstr "Clubs" | ||||
|  | ||||
| #: core/templates/core/base.jinja:44 | ||||
| #: core/templates/core/base.jinja:55 | ||||
| msgid "Services" | ||||
| msgstr "Services" | ||||
|  | ||||
| #: core/templates/core/base.jinja:60 | ||||
| #: core/templates/core/base.jinja:71 | ||||
| msgid "Site made by good people" | ||||
| msgstr "Site réalisé par des gens bons" | ||||
|  | ||||
| @@ -1370,6 +1391,10 @@ msgstr "Méthode de paiement" | ||||
| msgid "Account buyings" | ||||
| msgstr "Achat sur compte utilisateur" | ||||
|  | ||||
| #: core/templates/core/user_account.jinja:47 | ||||
| msgid "Label" | ||||
| msgstr "Intitulé" | ||||
|  | ||||
| #: core/templates/core/user_account.jinja:48 | ||||
| msgid "Quantity" | ||||
| msgstr "Quantité" | ||||
| @@ -1652,7 +1677,7 @@ msgstr "Bureau" | ||||
| #: eboutic/templates/eboutic/eboutic_main.jinja:24 | ||||
| #: eboutic/templates/eboutic/eboutic_makecommand.jinja:8 | ||||
| #: eboutic/templates/eboutic/eboutic_payment_result.jinja:4 | ||||
| #: sith/settings.py:283 sith/settings_sample.py:266 | ||||
| #: sith/settings.py:288 sith/settings_sample.py:271 | ||||
| msgid "Eboutic" | ||||
| msgstr "Eboutic" | ||||
|  | ||||
| @@ -1688,9 +1713,9 @@ msgstr "quantité" | ||||
| msgid "Sith account" | ||||
| msgstr "Compte utilisateur" | ||||
|  | ||||
| #: counter/models.py:263 sith/settings.py:276 sith/settings.py:281 | ||||
| #: sith/settings.py:302 sith/settings_sample.py:259 | ||||
| #: sith/settings_sample.py:264 sith/settings_sample.py:285 | ||||
| #: counter/models.py:263 sith/settings.py:281 sith/settings.py:286 | ||||
| #: sith/settings.py:307 sith/settings_sample.py:264 | ||||
| #: sith/settings_sample.py:269 sith/settings_sample.py:290 | ||||
| msgid "Credit card" | ||||
| msgstr "Carte banquaire" | ||||
|  | ||||
| @@ -2012,12 +2037,12 @@ msgid "Washing and drying" | ||||
| msgstr "Lavage et séchage" | ||||
|  | ||||
| #: launderette/templates/launderette/launderette_book.jinja:26 | ||||
| #: sith/settings.py:412 sith/settings_sample.py:395 | ||||
| #: sith/settings.py:417 sith/settings_sample.py:400 | ||||
| msgid "Washing" | ||||
| msgstr "Lavage" | ||||
|  | ||||
| #: launderette/templates/launderette/launderette_book.jinja:30 | ||||
| #: sith/settings.py:412 sith/settings_sample.py:395 | ||||
| #: sith/settings.py:417 sith/settings_sample.py:400 | ||||
| msgid "Drying" | ||||
| msgstr "Séchage" | ||||
|  | ||||
| @@ -2072,108 +2097,116 @@ msgstr "L'utilisateur n'a pas réservé de créneau" | ||||
| msgid "Token not found" | ||||
| msgstr "Jeton non trouvé" | ||||
|  | ||||
| #: sith/settings.py:273 sith/settings.py:280 sith/settings.py:300 | ||||
| #: sith/settings_sample.py:256 sith/settings_sample.py:263 | ||||
| #: sith/settings_sample.py:283 | ||||
| #: sith/settings.py:172 sith/settings_sample.py:160 | ||||
| msgid "English" | ||||
| msgstr "Anglais" | ||||
|  | ||||
| #: sith/settings.py:173 sith/settings_sample.py:161 | ||||
| msgid "French" | ||||
| msgstr "Français" | ||||
|  | ||||
| #: sith/settings.py:278 sith/settings.py:285 sith/settings.py:305 | ||||
| #: sith/settings_sample.py:261 sith/settings_sample.py:268 | ||||
| #: sith/settings_sample.py:288 | ||||
| msgid "Check" | ||||
| msgstr "Chèque" | ||||
|  | ||||
| #: sith/settings.py:274 sith/settings.py:282 sith/settings.py:301 | ||||
| #: sith/settings_sample.py:257 sith/settings_sample.py:265 | ||||
| #: sith/settings_sample.py:284 | ||||
| #: sith/settings.py:279 sith/settings.py:287 sith/settings.py:306 | ||||
| #: sith/settings_sample.py:262 sith/settings_sample.py:270 | ||||
| #: sith/settings_sample.py:289 | ||||
| msgid "Cash" | ||||
| msgstr "Espèces" | ||||
|  | ||||
| #: sith/settings.py:275 sith/settings_sample.py:258 | ||||
| #: sith/settings.py:280 sith/settings_sample.py:263 | ||||
| msgid "Transfert" | ||||
| msgstr "Virement" | ||||
|  | ||||
| #: sith/settings.py:288 sith/settings_sample.py:271 | ||||
| #: sith/settings.py:293 sith/settings_sample.py:276 | ||||
| msgid "Belfort" | ||||
| msgstr "Belfort" | ||||
|  | ||||
| #: sith/settings.py:289 sith/settings_sample.py:272 | ||||
| #: sith/settings.py:294 sith/settings_sample.py:277 | ||||
| msgid "Sevenans" | ||||
| msgstr "Sevenans" | ||||
|  | ||||
| #: sith/settings.py:290 sith/settings_sample.py:273 | ||||
| #: sith/settings.py:295 sith/settings_sample.py:278 | ||||
| msgid "Montbéliard" | ||||
| msgstr "Montbéliard" | ||||
|  | ||||
| #: sith/settings.py:325 sith/settings_sample.py:308 | ||||
| #: sith/settings.py:330 sith/settings_sample.py:313 | ||||
| msgid "One semester" | ||||
| msgstr "Un semestre" | ||||
|  | ||||
| #: sith/settings.py:330 sith/settings_sample.py:313 | ||||
| #: sith/settings.py:335 sith/settings_sample.py:318 | ||||
| msgid "Two semesters" | ||||
| msgstr "Deux semestres" | ||||
|  | ||||
| #: sith/settings.py:335 sith/settings_sample.py:318 | ||||
| #: sith/settings.py:340 sith/settings_sample.py:323 | ||||
| msgid "Common core cursus" | ||||
| msgstr "Cursus tronc commun" | ||||
|  | ||||
| #: sith/settings.py:340 sith/settings.py:345 sith/settings_sample.py:323 | ||||
| #: sith/settings_sample.py:328 | ||||
| #: sith/settings.py:345 sith/settings.py:350 sith/settings_sample.py:328 | ||||
| #: sith/settings_sample.py:333 | ||||
| msgid "Branch cursus" | ||||
| msgstr "Cursus branche" | ||||
|  | ||||
| #: sith/settings.py:350 sith/settings_sample.py:333 | ||||
| #: sith/settings.py:355 sith/settings_sample.py:338 | ||||
| msgid "Honorary member" | ||||
| msgstr "Membre honoraire" | ||||
|  | ||||
| #: sith/settings.py:355 sith/settings_sample.py:338 | ||||
| #: sith/settings.py:360 sith/settings_sample.py:343 | ||||
| msgid "Assidu member" | ||||
| msgstr "Membre d'Assidu" | ||||
|  | ||||
| #: sith/settings.py:360 sith/settings_sample.py:343 | ||||
| #: sith/settings.py:365 sith/settings_sample.py:348 | ||||
| msgid "Amicale/DOCEO member" | ||||
| msgstr "Membre de l'Amicale/DOCEO" | ||||
|  | ||||
| #: sith/settings.py:365 sith/settings_sample.py:348 | ||||
| #: sith/settings.py:370 sith/settings_sample.py:353 | ||||
| msgid "UT network member" | ||||
| msgstr "Cotisant du réseau UT" | ||||
|  | ||||
| #: sith/settings.py:370 sith/settings_sample.py:353 | ||||
| #: sith/settings.py:375 sith/settings_sample.py:358 | ||||
| msgid "CROUS member" | ||||
| msgstr "Membres du CROUS" | ||||
|  | ||||
| #: sith/settings.py:375 sith/settings_sample.py:358 | ||||
| #: sith/settings.py:380 sith/settings_sample.py:363 | ||||
| msgid "Sbarro/ESTA member" | ||||
| msgstr "Membre de Sbarro ou de l'ESTA" | ||||
|  | ||||
| #: sith/settings.py:383 sith/settings_sample.py:366 | ||||
| #: sith/settings.py:388 sith/settings_sample.py:371 | ||||
| msgid "President" | ||||
| msgstr "Président" | ||||
|  | ||||
| #: sith/settings.py:384 sith/settings_sample.py:367 | ||||
| #: sith/settings.py:389 sith/settings_sample.py:372 | ||||
| msgid "Vice-President" | ||||
| msgstr "Vice-Président" | ||||
|  | ||||
| #: sith/settings.py:385 sith/settings_sample.py:368 | ||||
| #: sith/settings.py:390 sith/settings_sample.py:373 | ||||
| msgid "Treasurer" | ||||
| msgstr "Trésorier" | ||||
|  | ||||
| #: sith/settings.py:386 sith/settings_sample.py:369 | ||||
| #: sith/settings.py:391 sith/settings_sample.py:374 | ||||
| msgid "Communication supervisor" | ||||
| msgstr "Responsable com" | ||||
|  | ||||
| #: sith/settings.py:387 sith/settings_sample.py:370 | ||||
| #: sith/settings.py:392 sith/settings_sample.py:375 | ||||
| msgid "Secretary" | ||||
| msgstr "Secrétaire" | ||||
|  | ||||
| #: sith/settings.py:388 sith/settings_sample.py:371 | ||||
| #: sith/settings.py:393 sith/settings_sample.py:376 | ||||
| msgid "IT supervisor" | ||||
| msgstr "Responsable info" | ||||
|  | ||||
| #: sith/settings.py:389 sith/settings_sample.py:372 | ||||
| #: sith/settings.py:394 sith/settings_sample.py:377 | ||||
| msgid "Board member" | ||||
| msgstr "Membre du bureau" | ||||
|  | ||||
| #: sith/settings.py:390 sith/settings_sample.py:373 | ||||
| #: sith/settings.py:395 sith/settings_sample.py:378 | ||||
| msgid "Active member" | ||||
| msgstr "Membre actif" | ||||
|  | ||||
| #: sith/settings.py:391 sith/settings_sample.py:374 | ||||
| #: sith/settings.py:396 sith/settings_sample.py:379 | ||||
| msgid "Curious" | ||||
| msgstr "Curieux" | ||||
|  | ||||
| @@ -2218,5 +2251,3 @@ msgid "You must either choose an existing user or create a new one properly" | ||||
| msgstr "" | ||||
| "Vous devez soit choisir un utilisateur existant, ou en créer un proprement." | ||||
|  | ||||
| #~ msgid "remark" | ||||
| #~ msgstr "remarque" | ||||
|   | ||||
							
								
								
									
										66
									
								
								migrate.py
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								migrate.py
									
									
									
									
									
								
							| @@ -730,10 +730,18 @@ def migrate_operations(): | ||||
|             0: "CASH", | ||||
|             None: "CASH", | ||||
|             } | ||||
|     MOVEMENT_TYPE = { | ||||
|             -1: "DEBIT", | ||||
|             0: "NEUTRAL", | ||||
|             1: "CREDIT", | ||||
|             None: "NEUTRAL", | ||||
|             } | ||||
|     cur = db.cursor(MySQLdb.cursors.SSDictCursor) | ||||
|     cur.execute(""" | ||||
|     SELECT * | ||||
|     FROM cpta_operation | ||||
|     FROM cpta_operation op | ||||
|     LEFT JOIN cpta_op_clb clb | ||||
|     ON op.id_opclb = clb.id_opclb | ||||
|     """) | ||||
|     Operation.objects.all().delete() | ||||
|     print("Operation deleted") | ||||
| @@ -748,7 +756,7 @@ def migrate_operations(): | ||||
|             if not accounting_type and simple_type: | ||||
|                 accounting_type = simple_type.accounting_type | ||||
|             if not accounting_type: | ||||
|                 accounting_type = AccountingType.objects.filter(movement_type="NEUTRAL").first() | ||||
|                 accounting_type = AccountingType.objects.filter(movement_type=MOVEMENT_TYPE[r['type_mouvement']]).first() | ||||
|             journal = GeneralJournal.objects.filter(id=r['id_classeur']).first() | ||||
|             def get_target_type(): | ||||
|                 if r['id_utilisateur']: | ||||
| @@ -808,35 +816,39 @@ def make_operation_links(): | ||||
| def main(): | ||||
|     start = datetime.datetime.now() | ||||
|     print("Start at %s" % start) | ||||
|     # migrate_users() | ||||
|     # migrate_profile_pict() | ||||
|     # migrate_clubs() | ||||
|     # migrate_club_memberships() | ||||
|     # migrate_subscriptions() | ||||
|     # update_customer_account() | ||||
|     # migrate_counters() | ||||
|     # migrate_permanencies() | ||||
|     # migrate_typeproducts() | ||||
|     # migrate_products() | ||||
|     # migrate_product_pict() | ||||
|     # migrate_products_to_counter() | ||||
|     # reset_customer_amount() | ||||
|     # migrate_invoices() | ||||
|     # migrate_refillings() | ||||
|     # migrate_sellings() | ||||
|     # reset_index('core', 'club', 'subscription', 'accounting', 'eboutic', 'launderette', 'counter') | ||||
|     # migrate_accounting_types() | ||||
|     # migrate_simpleaccounting_types() | ||||
|     # migrate_bank_accounts() | ||||
|     # migrate_club_accounts() | ||||
|     # migrate_journals() | ||||
|     # migrate_operations() | ||||
|     # Core | ||||
|     migrate_users() | ||||
|     migrate_profile_pict() | ||||
|     # Club | ||||
|     migrate_clubs() | ||||
|     migrate_club_memberships() | ||||
|     # Subscriptions | ||||
|     migrate_subscriptions() | ||||
|     # Counters | ||||
|     update_customer_account() | ||||
|     migrate_counters() | ||||
|     migrate_permanencies() | ||||
|     migrate_typeproducts() | ||||
|     migrate_products() | ||||
|     migrate_product_pict() | ||||
|     migrate_products_to_counter() | ||||
|     reset_customer_amount() | ||||
|     migrate_invoices() | ||||
|     reset_index('counter') | ||||
|     migrate_refillings() | ||||
|     migrate_sellings() | ||||
|     # Accounting | ||||
|     migrate_accounting_types() | ||||
|     migrate_simpleaccounting_types() | ||||
|     migrate_bank_accounts() | ||||
|     migrate_club_accounts() | ||||
|     migrate_journals() | ||||
|     migrate_operations() | ||||
|     make_operation_links() | ||||
|     reset_index('core', 'club', 'subscription', 'accounting', 'eboutic', 'launderette', 'counter') | ||||
|     end = datetime.datetime.now() | ||||
|     print("End at %s" % end) | ||||
|     print("Running time: %s" % (end-start)) | ||||
|  | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     main() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user