Ajout champs remarks/accred/accred_from pour Corporation

This commit is contained in:
Claude Paroz 2024-12-09 11:22:42 +01:00
parent acac24fce3
commit f345ec77b4
3 changed files with 54 additions and 10 deletions

View file

@ -332,7 +332,7 @@ class ContactInline(admin.StackedInline):
@admin.register(Corporation)
class CorporationAdmin(admin.ModelAdmin):
list_display = ('name', 'short_name', 'pcode', 'city', 'district', 'ext_id')
list_display = ('name', 'short_name', 'pcode', 'city', 'district', 'accred_from', 'ext_id')
list_editable = ('short_name',) # Temporarily?
list_filter = (('archived', ArchivedListFilter),)
search_fields = ('name', 'street', 'pcode', 'city')
@ -345,6 +345,8 @@ class CorporationAdmin(admin.ModelAdmin):
('pcode', 'city', 'district'),
('tel', 'email'),
'web',
('accred', 'accred_from'),
'remarks',
'archived',
)
inlines = [ContactInline]
@ -358,19 +360,25 @@ class CorporationAdmin(admin.ModelAdmin):
"""
Export all Corporations in Excel file.
"""
export_fields = OrderedDict([
(getattr(f, 'verbose_name', f.name), f.name)
for f in Corporation._meta.get_fields() if f.name in (
'name', 'short_name', 'sector', 'typ', 'street', 'pcode',
'city', 'district', 'tel', 'email', 'web', 'ext_id', 'archived'
)
])
fields = [
('name', 40), ('short_name', 19), ('sector', 11), ('typ', 10),
('street', 25), ('pcode', 6), ('city', 18), ('district', 8),
('tel', 14), ('email', 24), ('web', 25), ('accred', 6), ('accred_from', 8),
('remarks', 30), ('ext_id', 8), ('archived', 6),
]
export_fields = {
getattr(f, 'verbose_name', f.name): f.name
for f in Corporation._meta.get_fields() if f.name in dict(fields)
}
export = OpenXMLExport('Exportation')
export.write_line(export_fields.keys(), bold=True)
export.write_line(
export_fields.keys(), bold=True,
col_widths=[dict(fields)[f] for f in export_fields.values()]
)
for corp in queryset.values_list(*export_fields.values()):
values = []
for value, field_name in zip(corp, export_fields.values()):
if field_name == 'archived':
if field_name in ('archived', 'accred'):
value = 'Oui' if value else ''
values.append(value)
export.write_line(values)

View file

@ -0,0 +1,26 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stages', '0037_student_start_educ'),
]
operations = [
migrations.AddField(
model_name='corporation',
name='accred',
field=models.BooleanField(default=False, verbose_name='Accréditation'),
),
migrations.AddField(
model_name='corporation',
name='accred_from',
field=models.PositiveSmallIntegerField(blank=True, choices=[(2024, '2024'), (2025, '2025'), (2026, '2026'), (2027, '2027'), (2028, '2028')], null=True, verbose_name='Depuis'),
),
migrations.AddField(
model_name='corporation',
name='remarks',
field=models.TextField(blank=True, verbose_name='Remarques'),
),
]

View file

@ -446,6 +446,13 @@ class StudentFile(models.Model):
class Corporation(models.Model):
YEAR_CHOICES = (
(2024, "2024"),
(2025, "2025"),
(2026, "2026"),
(2027, "2027"),
(2028, "2028"),
)
ext_id = models.IntegerField(null=True, blank=True, verbose_name='ID externe')
name = models.CharField(max_length=100, verbose_name='Nom')
short_name = models.CharField(max_length=40, blank=True, verbose_name='Nom court')
@ -460,6 +467,9 @@ class Corporation(models.Model):
tel = models.CharField(max_length=20, blank=True, verbose_name='Téléphone')
email = models.EmailField(blank=True, verbose_name='Courriel')
web = models.URLField(blank=True, verbose_name='Site Web')
accred = models.BooleanField("Accréditation", default=False)
accred_from = models.PositiveSmallIntegerField("Depuis", choices=YEAR_CHOICES, blank=True, null=True)
remarks = models.TextField("Remarques", blank=True)
archived = models.BooleanField(default=False, verbose_name='Archivé')
class Meta: