Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -90,6 +90,7 @@ class Admin_StackedInline_Block(Admin_Trans_GenericBaseIconStackedInline, SuperI
|
|||||||
|
|
||||||
# class Admin_StaticPage(NestedModelAdmin, Admin_Trans_BaseModelViewPage):
|
# class Admin_StaticPage(NestedModelAdmin, Admin_Trans_BaseModelViewPage):
|
||||||
class Admin_StaticPage(SuperModelAdmin, Admin_Trans_BaseModelViewPage):
|
class Admin_StaticPage(SuperModelAdmin, Admin_Trans_BaseModelViewPage):
|
||||||
|
from ServicesApp.admin import Admin_StackedInline_BlockPluginPresentation
|
||||||
|
|
||||||
|
|
||||||
fieldsets = [
|
fieldsets = [
|
||||||
@@ -120,20 +121,24 @@ class Admin_StaticPage(SuperModelAdmin, Admin_Trans_BaseModelViewPage):
|
|||||||
'order', 'modifiedDT', 'createDT'
|
'order', 'modifiedDT', 'createDT'
|
||||||
]
|
]
|
||||||
|
|
||||||
list_display_links = ['id']
|
list_display_links = ['id', 'image_thumb', 'name']
|
||||||
list_editable = ['order']
|
list_editable = ['order']
|
||||||
|
|
||||||
list_filter = ['modifiedDT', 'createDT']
|
list_filter = ['modifiedDT', 'createDT']
|
||||||
search_fields = ['name', 'title']
|
search_fields = ['name', 'title']
|
||||||
# filter_horizontal = ['options']
|
# filter_horizontal = ['options']
|
||||||
|
|
||||||
inlines = [Admin_StackedInline_Block]
|
inlines = [
|
||||||
|
Admin_StackedInline_BlockPluginPresentation,
|
||||||
|
Admin_StackedInline_Block,
|
||||||
|
AdminStacked_FAQitem,
|
||||||
|
]
|
||||||
|
|
||||||
def has_delete_permission(self, request, obj=None):
|
def has_delete_permission(self, request, obj=None):
|
||||||
if request.user.is_superuser:
|
if request.user.is_superuser:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if obj.url in ('main', 'spec_technics', 'works'):
|
if obj.url in ('main', 'contacts'):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
admin.site.register(StaticPage,Admin_StaticPage)
|
admin.site.register(StaticPage,Admin_StaticPage)
|
||||||
@@ -249,9 +254,10 @@ class Admin_Office(Admin_Trans_BaseModelViewPage):
|
|||||||
# 'main_office',
|
# 'main_office',
|
||||||
'city',
|
'city',
|
||||||
'address',
|
'address',
|
||||||
|
'picture',
|
||||||
(
|
(
|
||||||
'work_time_from', 'work_time_to',
|
'work_time_from', 'work_time_to',
|
||||||
# 'workTime',
|
'workTime',
|
||||||
),
|
),
|
||||||
# ('legal_name', 'unp', 'legal_address', 'urInfo'),
|
# ('legal_name', 'unp', 'legal_address', 'urInfo'),
|
||||||
# 'fullContactInfo',
|
# 'fullContactInfo',
|
||||||
@@ -268,7 +274,7 @@ class Admin_Office(Admin_Trans_BaseModelViewPage):
|
|||||||
save_on_top = True
|
save_on_top = True
|
||||||
# prepopulated_fields = {"url": ("name",)}
|
# prepopulated_fields = {"url": ("name",)}
|
||||||
list_display = [
|
list_display = [
|
||||||
'id', 'enable', 'order', 'city', 'address', 'work_time_from', 'work_time_to',
|
'image_thumb', 'id', 'enable', 'order', 'city', 'address', 'work_time_from', 'work_time_to',
|
||||||
# 'main_office',
|
# 'main_office',
|
||||||
'modifiedDT', 'createDT'
|
'modifiedDT', 'createDT'
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# Generated by Django 4.2.7 on 2023-12-09 21:19
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('GeneralApp', '0020_alter_office_options_office_work_time_from_en_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='office',
|
||||||
|
name='workTime',
|
||||||
|
field=models.CharField(blank=True, max_length=220, null=True, verbose_name='Комментарий к времени работы'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='office',
|
||||||
|
name='workTime_en',
|
||||||
|
field=models.CharField(blank=True, max_length=220, null=True, verbose_name='Комментарий к времени работы'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='office',
|
||||||
|
name='workTime_ru',
|
||||||
|
field=models.CharField(blank=True, max_length=220, null=True, verbose_name='Комментарий к времени работы'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -171,7 +171,7 @@ class Office(BaseModelViewPage):
|
|||||||
city = models.CharField(max_length=250, verbose_name=_(u'Город'))
|
city = models.CharField(max_length=250, verbose_name=_(u'Город'))
|
||||||
address = models.CharField(max_length=250, verbose_name=_(u'Адрес'), null=True, blank=True)
|
address = models.CharField(max_length=250, verbose_name=_(u'Адрес'), null=True, blank=True)
|
||||||
workTime = models.CharField(
|
workTime = models.CharField(
|
||||||
max_length=220, verbose_name=_(u'Комментарий к времени работы'),
|
max_length=220, verbose_name=_(u'Комментарий к времени работы'), null=True, blank=True
|
||||||
# help_text='добавляется справа от времени работы'
|
# help_text='добавляется справа от времени работы'
|
||||||
)
|
)
|
||||||
work_time_from = models.TimeField(verbose_name=_('Время работы с'), default=work_time_default_from())
|
work_time_from = models.TimeField(verbose_name=_('Время работы с'), default=work_time_default_from())
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ from .views import *
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', MainPage, name='main'),
|
path('', MainPage, name='main'),
|
||||||
|
path('contacts/', contacts_view, name='contacts'),
|
||||||
path('page/<str:url>/', StaticPageView, name='static_page'),
|
path('page/<str:url>/', StaticPageView, name='static_page'),
|
||||||
path('test_code', test_code, name='test_code'),
|
path('test_code', test_code, name='test_code'),
|
||||||
]
|
]
|
||||||
@@ -29,6 +29,14 @@ def MainPage(request):
|
|||||||
name_ru = _('Главная')
|
name_ru = _('Главная')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
page = StaticPage.objects.get(url='contacts')
|
||||||
|
except StaticPage.DoesNotExist:
|
||||||
|
page = StaticPage.objects.create(
|
||||||
|
url='contacts',
|
||||||
|
name_ru = _('Контакты')
|
||||||
|
)
|
||||||
|
|
||||||
# from ArticlesApp.models import ArticleModel
|
# from ArticlesApp.models import ArticleModel
|
||||||
# arts = ArticleModel.objects.filter(enable=True).order_by('-createDT')[:4]
|
# arts = ArticleModel.objects.filter(enable=True).order_by('-createDT')[:4]
|
||||||
|
|
||||||
@@ -56,18 +64,7 @@ def StaticPageView(request, url):
|
|||||||
|
|
||||||
if url == '':
|
if url == '':
|
||||||
return MainPage(request)
|
return MainPage(request)
|
||||||
elif url == 'for_movers':
|
|
||||||
Dict.update({
|
|
||||||
# 'route_form': RouteForm(),
|
|
||||||
'owner_type': 'customer',
|
|
||||||
})
|
|
||||||
elif url == 'for_customers':
|
|
||||||
Dict.update({
|
|
||||||
# 'route_form': RouteForm(),
|
|
||||||
'owner_type': 'mover'
|
|
||||||
})
|
|
||||||
# elif url == 'works':
|
|
||||||
# return WorksPage(request)
|
|
||||||
elif url in ['main']:
|
elif url in ['main']:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
@@ -92,3 +89,22 @@ def StaticPageView(request, url):
|
|||||||
# return HttpResponse(t.render(Dict, request))
|
# return HttpResponse(t.render(Dict, request))
|
||||||
|
|
||||||
|
|
||||||
|
def contacts_view(request):
|
||||||
|
# from RoutesApp.forms import RouteForm
|
||||||
|
# from SubscribesApp.funcs import get_subsribes_w_options
|
||||||
|
try:
|
||||||
|
page = StaticPage.objects.get(url='contacts')
|
||||||
|
except Exception as e:
|
||||||
|
page = StaticPage.objects.create(
|
||||||
|
url='contacts',
|
||||||
|
name_ru=_('Контакты')
|
||||||
|
)
|
||||||
|
|
||||||
|
Dict = {
|
||||||
|
'page': page,
|
||||||
|
'offices': Office.objects.filter(enable=True)
|
||||||
|
}
|
||||||
|
|
||||||
|
t = loader.get_template('pages/p_contacts.html')
|
||||||
|
return get_inter_http_respose(t, Dict, request)
|
||||||
|
# return HttpResponse(t.render(Dict, request))
|
||||||
|
|||||||
29
templates/pages/p_contacts.html
Normal file
29
templates/pages/p_contacts.html
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{% extends 'tb_base.html' %}
|
||||||
|
{% block CONTENT %}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
Контакты
|
||||||
|
<div>
|
||||||
|
{% for office in offices %}
|
||||||
|
<div>
|
||||||
|
{% if office.picture %}
|
||||||
|
<img src="{{ MEDIA_URL }}{{ office.picture }}" alt="{{ office.city }}" />
|
||||||
|
{% endif %}
|
||||||
|
<div>{{ office.city }}</div>
|
||||||
|
<div>{{ office.address }}</div>
|
||||||
|
Часы работы:
|
||||||
|
<div>{{ office.work_time_from }} - {{ office.work_time_to }}</div>
|
||||||
|
<div>{{ office.work_time }}</div>
|
||||||
|
<div>
|
||||||
|
{% for contact in office.contacts %}
|
||||||
|
<div>
|
||||||
|
{% if contact.contact_label %}{{ contact.contact_label }}: {% endif %}{{ contact.get_prefix_w_data }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user