Commit f43b9859 authored by Hugo LEVY-FALK's avatar Hugo LEVY-FALK

Meilleure gestion des default pour les templates invoice et voucher

parent 1fcf90b6
...@@ -797,8 +797,8 @@ main_function() { ...@@ -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 )
......
# -*- 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): ...@@ -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',
......
...@@ -35,6 +35,7 @@ from django.forms import ValidationError ...@@ -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): ...@@ -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): ...@@ -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,
) )
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment