0.3.0 contacts page

This commit is contained in:
SDE
2023-12-09 20:13:32 +03:00
parent bc69d92ef7
commit aae426cf93
5 changed files with 295 additions and 3 deletions

View File

@@ -223,3 +223,72 @@ class Admin_Option(Admin_Trans_BaseModel):
list_filter = ['opt_type']
admin.site.register(Option,Admin_Option)
class AdminTabular_ContactModel(Admin_Trans_BaseIconTabularInline):
fields = [
'name', 'contact_type', 'contact_label', 'contact_prefix', 'contact_data', 'order'
]
model = Contact
extra = 1
ordering = ['order','contact_type', 'contact_label']
class Admin_Office(Admin_Trans_BaseModelViewPage):
fieldsets = [
(None, {
'classes': ['wide'],
'fields': (
# 'main_office',
'city',
'address',
(
'work_time_from', 'work_time_to',
# 'workTime',
),
# ('legal_name', 'unp', 'legal_address', 'urInfo'),
# 'fullContactInfo',
# 'footer_info',
# 'gps_longitude',
# 'gps_latitude',
# 'map_code'
)
}),
]
save_on_top = True
# prepopulated_fields = {"url": ("name",)}
list_display = [
'id', 'enable', 'order', 'city', 'address', 'work_time_from', 'work_time_to',
# 'main_office',
'modifiedDT', 'createDT'
]
list_editable = [
'work_time_from', 'work_time_to',
# 'main_office',
'order'
]
list_display_links = ['id', 'city', 'address']
search_fields = ['city', 'address', 'id']
list_filter = [
'enable',
# 'main_office',
'modifiedDT', 'createDT'
]
inlines = [AdminTabular_ContactModel]
# def has_delete_permission(self, request, obj=None):
# return not Office.objects.all().count() < 2
admin.site.register(Office, Admin_Office)

View File

@@ -0,0 +1,169 @@
# Generated by Django 4.2.7 on 2023-12-09 19:55
import ckeditor_uploader.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('GeneralApp', '0018_office_contact'),
]
operations = [
migrations.AddField(
model_name='contact',
name='contact_data_en',
field=models.CharField(max_length=50, null=True, verbose_name='Контакт'),
),
migrations.AddField(
model_name='contact',
name='contact_data_ru',
field=models.CharField(max_length=50, null=True, verbose_name='Контакт'),
),
migrations.AddField(
model_name='contact',
name='contact_label_en',
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Метка контакта'),
),
migrations.AddField(
model_name='contact',
name='contact_label_ru',
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Метка контакта'),
),
migrations.AddField(
model_name='contact',
name='contact_prefix_en',
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Префикс контакта'),
),
migrations.AddField(
model_name='contact',
name='contact_prefix_ru',
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Префикс контакта'),
),
migrations.AddField(
model_name='contact',
name='name_en',
field=models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название'),
),
migrations.AddField(
model_name='contact',
name='name_ru',
field=models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название'),
),
migrations.AddField(
model_name='office',
name='FAQ_title_en',
field=models.CharField(blank=True, max_length=250, null=True, verbose_name='FAQ Заголовок'),
),
migrations.AddField(
model_name='office',
name='FAQ_title_ru',
field=models.CharField(blank=True, max_length=250, null=True, verbose_name='FAQ Заголовок'),
),
migrations.AddField(
model_name='office',
name='address_en',
field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Адрес'),
),
migrations.AddField(
model_name='office',
name='address_ru',
field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Адрес'),
),
migrations.AddField(
model_name='office',
name='city_en',
field=models.CharField(max_length=250, null=True, verbose_name='Город'),
),
migrations.AddField(
model_name='office',
name='city_ru',
field=models.CharField(max_length=250, null=True, verbose_name='Город'),
),
migrations.AddField(
model_name='office',
name='description_en',
field=ckeditor_uploader.fields.RichTextUploadingField(blank=True, help_text='краткое описание страницы (до 240 символов)', null=True, verbose_name='Краткое описание'),
),
migrations.AddField(
model_name='office',
name='description_ru',
field=ckeditor_uploader.fields.RichTextUploadingField(blank=True, help_text='краткое описание страницы (до 240 символов)', null=True, verbose_name='Краткое описание'),
),
migrations.AddField(
model_name='office',
name='name_en',
field=models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название'),
),
migrations.AddField(
model_name='office',
name='name_ru',
field=models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название'),
),
migrations.AddField(
model_name='office',
name='seo_description_en',
field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Description (150 знаков)'),
),
migrations.AddField(
model_name='office',
name='seo_description_ru',
field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Description (150 знаков)'),
),
migrations.AddField(
model_name='office',
name='seo_text_en',
field=ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Текст SEO статьи'),
),
migrations.AddField(
model_name='office',
name='seo_text_ru',
field=ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Текст SEO статьи'),
),
migrations.AddField(
model_name='office',
name='seo_title_en',
field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Title (80 знаков)'),
),
migrations.AddField(
model_name='office',
name='seo_title_ru',
field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Title (80 знаков)'),
),
migrations.AddField(
model_name='office',
name='text_en',
field=ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Полное описание'),
),
migrations.AddField(
model_name='office',
name='text_ru',
field=ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Полное описание'),
),
migrations.AddField(
model_name='office',
name='title_en',
field=models.TextField(blank=True, null=True, verbose_name='Заголовок'),
),
migrations.AddField(
model_name='office',
name='title_ru',
field=models.TextField(blank=True, null=True, verbose_name='Заголовок'),
),
migrations.AddField(
model_name='office',
name='workTime_en',
field=models.CharField(max_length=220, null=True, verbose_name='Комментарий к времени работы'),
),
migrations.AddField(
model_name='office',
name='workTime_ru',
field=models.CharField(max_length=220, null=True, verbose_name='Комментарий к времени работы'),
),
migrations.AlterField(
model_name='contact',
name='contact_data',
field=models.CharField(max_length=50, verbose_name='Контакт'),
),
]

View File

@@ -0,0 +1,38 @@
# Generated by Django 4.2.7 on 2023-12-09 20:09
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('GeneralApp', '0019_contact_contact_data_en_contact_contact_data_ru_and_more'),
]
operations = [
migrations.AlterModelOptions(
name='office',
options={'ordering': ['order', 'city', 'name'], 'verbose_name': 'Офис', 'verbose_name_plural': 'Офисы'},
),
migrations.AddField(
model_name='office',
name='work_time_from_en',
field=models.TimeField(default=datetime.datetime(2023, 12, 9, 9, 0), null=True, verbose_name='Время работы с'),
),
migrations.AddField(
model_name='office',
name='work_time_from_ru',
field=models.TimeField(default=datetime.datetime(2023, 12, 9, 9, 0), null=True, verbose_name='Время работы с'),
),
migrations.AddField(
model_name='office',
name='work_time_to_en',
field=models.TimeField(default=datetime.datetime(2023, 12, 9, 18, 0), null=True, verbose_name='Время работы до'),
),
migrations.AddField(
model_name='office',
name='work_time_to_ru',
field=models.TimeField(default=datetime.datetime(2023, 12, 9, 18, 0), null=True, verbose_name='Время работы до'),
),
]

View File

@@ -233,8 +233,8 @@ class Office(BaseModelViewPage):
class Meta:
verbose_name=_(u'Подразделения')
verbose_name_plural = _(u'Подразделение')
verbose_name=_('Офис')
verbose_name_plural = _('Офисы')
ordering = ['order', 'city', 'name']
@@ -252,7 +252,7 @@ class Contact(BaseModel):
)
contact_label = models.CharField(max_length=50, verbose_name=_('Метка контакта'), null=True, blank=True)
contact_prefix = models.CharField(max_length=50, verbose_name=_('Префикс контакта'), null=True, blank=True)
contact_data = models.CharField(max_length=50, verbose_name=_('Номер телефона'))
contact_data = models.CharField(max_length=50, verbose_name=_('Контакт'))
office = models.ForeignKey(
Office, verbose_name=_('Офис'), related_name='rel_contacts_for_office', on_delete=models.CASCADE)

View File

@@ -8,6 +8,22 @@ class StaticPage_TranslationOptions(TranslationOptions):
)
translator.register(StaticPage, StaticPage_TranslationOptions)
class Office_TranslationOptions(TranslationOptions):
fields = (
'name', 'description', 'text', 'title', 'FAQ_title', 'seo_title', 'seo_description', 'seo_text',
'city', 'address', 'workTime', 'work_time_from', 'work_time_to',
)
translator.register(Office, Office_TranslationOptions)
class Contact_TranslationOptions(TranslationOptions):
fields = (
'name', 'contact_label', 'contact_prefix', 'contact_data',
)
translator.register(Contact, Contact_TranslationOptions)
class Block_TranslationOptions(TranslationOptions):
fields = (
'name', 'description', 'text', 'title', 'FAQ_title', 'but_title'