8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-08-19 13:43:40 +00:00

Meilleure gestion des default pour les templates invoice et voucher

This commit is contained in:
Hugo LEVY-FALK 2019-01-20 18:53:25 +01:00
parent 1fcf90b698
commit f43b985966
3 changed files with 24 additions and 37 deletions

View file

@ -797,8 +797,8 @@ main_function() {
update ) update )
install_requirements install_requirements
update_django
copy_templates_files copy_templates_files
update_django
;; ;;
copy-templates-files ) copy-templates-files )

View file

@ -1,48 +1,16 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.10.7 on 2019-01-03 19:56 # Generated by Django 1.10.7 on 2019-01-03 19:56
from __future__ import unicode_literals from __future__ import unicode_literals
import os
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion import django.db.models.deletion
from django.core.files import File
from django.conf import settings
import re2o.mixins import re2o.mixins
import preferences.models
def initialize_invoice_template(apps, schema_editor): def initialize_invoice_template(apps, schema_editor):
CotisationsOption = apps.get_model('preferences', 'CotisationsOption') CotisationsOption = apps.get_model('preferences', 'CotisationsOption')
DocumentTemplate = apps.get_model('cotisations', 'DocumentTemplate') CotisationsOption.objects.get_or_create()
invoice_path = os.path.join(
settings.BASE_DIR,
"cotisations",
"templates",
"cotisations",
"factures.tex"
)
voucher_path = os.path.join(
settings.BASE_DIR,
"cotisations",
"templates",
"cotisations",
"voucher.tex"
)
with open(invoice_path) as f:
tpl_invoice, _ = DocumentTemplate.objects.get_or_create(
name="Re2o default invoice",
)
tpl_invoice.template.save('default_invoice.tex', File(f))
tpl_invoice.save()
with open(voucher_path) as f:
tpl_voucher, _ = DocumentTemplate.objects.get_or_create(
name="Re2o default voucher",
)
tpl_voucher.template.save('default_voucher.tex', File(f))
tpl_voucher.save()
CotisationsOption.objects.create(
invoice_template=tpl_invoice,
voucher_template=tpl_voucher,
)
class Migration(migrations.Migration): class Migration(migrations.Migration):
@ -57,8 +25,8 @@ class Migration(migrations.Migration):
name='CotisationsOption', name='CotisationsOption',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('invoice_template', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='invoice_template', to='cotisations.DocumentTemplate', verbose_name='Template for invoices')), ('invoice_template', models.OneToOneField(default=preferences.models.default_invoice,on_delete=django.db.models.deletion.PROTECT, related_name='invoice_template', to='cotisations.DocumentTemplate', verbose_name='Template for invoices')),
('voucher_template', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='voucher_template', to='cotisations.DocumentTemplate', verbose_name='Template for subscription voucher')), ('voucher_template', models.OneToOneField(default=preferences.models.default_voucher, on_delete=django.db.models.deletion.PROTECT, related_name='voucher_template', to='cotisations.DocumentTemplate', verbose_name='Template for subscription voucher')),
], ],
options={ options={
'verbose_name': 'cotisations options', 'verbose_name': 'cotisations options',

View file

@ -35,6 +35,7 @@ from django.forms import ValidationError
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import machines.models import machines.models
import cotisations.models
from re2o.mixins import AclMixin from re2o.mixins import AclMixin
from re2o.aes_field import AESEncryptedField from re2o.aes_field import AESEncryptedField
@ -694,6 +695,22 @@ class RadiusOption(AclMixin, PreferencesModel):
) )
def default_invoice():
tpl, _ = cotisations.models.DocumentTemplate.objects.get_or_create(
name="Re2o default invoice",
template="templates/default_invoice.tex"
)
return tpl.id
def default_voucher():
tpl, _ = cotisations.models.DocumentTemplate.objects.get_or_create(
name="Re2o default voucher",
template="templates/default_voucher.tex"
)
return tpl.id
class CotisationsOption(AclMixin, PreferencesModel): class CotisationsOption(AclMixin, PreferencesModel):
class Meta: class Meta:
verbose_name = _("cotisations options") verbose_name = _("cotisations options")
@ -703,10 +720,12 @@ class CotisationsOption(AclMixin, PreferencesModel):
verbose_name=_("Template for invoices"), verbose_name=_("Template for invoices"),
related_name="invoice_template", related_name="invoice_template",
on_delete=models.PROTECT, on_delete=models.PROTECT,
default=default_invoice,
) )
voucher_template = models.OneToOneField( voucher_template = models.OneToOneField(
'cotisations.DocumentTemplate', 'cotisations.DocumentTemplate',
verbose_name=_("Template for subscription voucher"), verbose_name=_("Template for subscription voucher"),
related_name="voucher_template", related_name="voucher_template",
on_delete=models.PROTECT, on_delete=models.PROTECT,
default=default_voucher,
) )