2.1.1 import country flags
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
from django.conf import settings
|
||||
from django.contrib import admin
|
||||
|
||||
from BaseModels.files_funcs import get_filenames_in_path
|
||||
from BaseModels.print_funcs import print_ext
|
||||
from sets.admin import Admin_Trans_BaseModel
|
||||
from .models import *
|
||||
from modeltranslation.admin import TranslationAdmin
|
||||
@@ -9,7 +13,7 @@ class Admin_Country(Admin_Trans_BaseModel):
|
||||
[None, {
|
||||
'classes': ['wide'],
|
||||
'fields': [
|
||||
'name', 'enable', 'short_code', 'code',
|
||||
'name', 'enable', 'short_code', 'code', 'flag'
|
||||
]
|
||||
}],
|
||||
[_('Дополнительно'), {
|
||||
@@ -22,7 +26,26 @@ class Admin_Country(Admin_Trans_BaseModel):
|
||||
}],
|
||||
]
|
||||
|
||||
def get_list_display(self, request):
|
||||
objs = Country.objects.filter(flag=None)
|
||||
for obj in objs:
|
||||
self.import_flag(obj)
|
||||
return super(Admin_Country, self).get_list_display(request)
|
||||
|
||||
def import_flag(self, obj):
|
||||
# if not obj.flag:
|
||||
filenames_list = get_filenames_in_path(str(settings.BASE_DIR) + '/Flagpack/')
|
||||
files_Dict = {item.split(' - ')[0]: item for item in filenames_list}
|
||||
if obj.short_code in files_Dict.keys():
|
||||
obj.flag.save(
|
||||
files_Dict[obj.short_code],
|
||||
open(
|
||||
str(settings.BASE_DIR) + '/Flagpack/' + files_Dict[obj.short_code], 'rb+')
|
||||
)
|
||||
return True
|
||||
|
||||
list_display = [
|
||||
'image_thumb',
|
||||
'id', 'name', 'name_en', 'name_ru',
|
||||
'timezone',
|
||||
'short_code', 'code',
|
||||
|
||||
18
ReferenceDataApp/migrations/0007_country_flag.py
Normal file
18
ReferenceDataApp/migrations/0007_country_flag.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 4.2.2 on 2024-12-05 16:43
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ReferenceDataApp', '0006_airport_timezone_city_timezone_country_timezone'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='country',
|
||||
name='flag',
|
||||
field=models.ImageField(blank=True, null=True, upload_to='uploads/flags/', verbose_name='Флаг'),
|
||||
),
|
||||
]
|
||||
@@ -23,6 +23,10 @@ class Country(BaseModel):
|
||||
|
||||
parsing_finished_DT = models.DateTimeField(verbose_name=_('Дата и время завершения парсинга'), blank=True, null=True)
|
||||
|
||||
flag = models.ImageField(
|
||||
upload_to='uploads/flags/', verbose_name=_('Флаг'),
|
||||
null=True, blank=True, help_text=u'')
|
||||
|
||||
def __str__(self):
|
||||
if self.name:
|
||||
return f'{self.name}'
|
||||
|
||||
Reference in New Issue
Block a user