diff --git a/BaseModels/base_models.py b/BaseModels/base_models.py index 4f31d06..788ccce 100644 --- a/BaseModels/base_models.py +++ b/BaseModels/base_models.py @@ -143,9 +143,17 @@ class BaseModelViewPage(BaseModel): blocks = GenericRelation('GeneralApp.Block', related_query_name='grel_%(class)s_for_block_item') + slides = GenericRelation('SlidesApp.Slide', related_query_name='grel_%(class)s_for_block_item') + class Meta: abstract = True + def get_slides(self): + return self.slides.filter(enable=True).order_by('order') + + def get_FAQ_items(self): + return self.FAQ_items.filter(enable=True).order_by('order') + def get_blocks(self): return self.blocks.filter(enable=True).order_by('order') diff --git a/ServicesApp/admin.py b/ServicesApp/admin.py index 7848ecb..7c44214 100644 --- a/ServicesApp/admin.py +++ b/ServicesApp/admin.py @@ -6,6 +6,7 @@ from django.forms import widgets from super_inlines.admin import SuperInlineModelAdmin, SuperModelAdmin from GeneralApp.admin import Admin_StackedInline_Block from SlidesApp.admin import Admin_StackedInline_Slide +from django.utils.translation import gettext as _ def sets_for_formfield_for_dbfield(field, db_field): if db_field.name == 'url' or db_field.name == 'name' or db_field.name == 'title' or db_field.name == 'name_plural': @@ -57,6 +58,12 @@ class Admin_Section(SuperModelAdmin, Admin_Trans_BaseModelViewPage): 'order', ) }), + (_('Дополнительно'), { + 'classes': ['wide', 'collapse'], + 'fields': ( + 'FAQ_title', + ) + }), ('SEO', { 'classes': ['wide', 'collapse'], 'fields': ( @@ -86,7 +93,8 @@ class Admin_Section(SuperModelAdmin, Admin_Trans_BaseModelViewPage): inlines = [ Admin_StackedInline_Slide, Admin_StackedInline_BlockPluginPresentation, - Admin_StackedInline_Block + Admin_StackedInline_Block, + AdminStacked_FAQitem, ] def has_delete_permission(self, request, obj=None): diff --git a/ServicesApp/funcs.py b/ServicesApp/funcs.py index 87aec1c..06887a9 100644 --- a/ServicesApp/funcs.py +++ b/ServicesApp/funcs.py @@ -1,4 +1,5 @@ from .models import * +from django.utils.translation import gettext as _ def get_sections(): diff --git a/templates/blocks/b_faq.html b/templates/blocks/b_faq.html index 0434642..56304b3 100644 --- a/templates/blocks/b_faq.html +++ b/templates/blocks/b_faq.html @@ -1,25 +1,30 @@ {% load static %} {% load i18n %} -
-
-
- ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ -
-
-
-
-
-
Lorem ipsum dolor sit amet consectetur?
-
- + +{% if page.get_FAQ_items %} +
+
+
+ {% if not page.FAQ_title %}ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ{% else %}{{ page.FAQ_title }}{% endif %} +
+ {% for FAQ_item in page.get_FAQ_items %} +
+
+
+
+
{{ FAQ_item.question }}
+
+ +
+
+
+
+
+ {{ FAQ_item.answer|safe }}
-
-
- Lorem ipsum dolor sit amet consectetur. Enim convallis vulputate nam commodo. In varius orci ultrices aliquam penatibus vitae facilisi. Magna odio est justo aliquam tristique ullamcorper mi. Mi nulla tellus nunc sed. Faucibus tristique feugiat blandit ipsum donec. Commodo elit sit placerat diam tristique. Nunc enim erat magna bibendum egestas interdum eu id urna. -
-
+ {% endfor %}
-
\ No newline at end of file +{% endif %} \ No newline at end of file diff --git a/templates/pages/content/c_section_content.html b/templates/pages/content/c_section_content.html index 6d3dab2..66d4c85 100644 --- a/templates/pages/content/c_section_content.html +++ b/templates/pages/content/c_section_content.html @@ -1,3 +1,24 @@ +{% if page.get_slides %} +
+ {% for slide in page.get_slides %} +
+ {{ slide.name }} + + {% if slide.name or slide.description %} +
+ {% if slide.name %} +
{{ slide.name }}
+ {% endif %} + {% if slide.description %} +
{{ slide.description|linebreaksbr }}
+ {% endif %} +
+ {% endif %} +
+ {% endfor %} +
+{% endif %} + {% include 'blocks/dynamic/b_sections_buttons.html' %}
diff --git a/templates/tb_base.html b/templates/tb_base.html index 1ddb088..1761901 100644 --- a/templates/tb_base.html +++ b/templates/tb_base.html @@ -30,7 +30,11 @@ {% endblock %}
+ + {% include 'blocks/b_faq.html' %} + + {% include 'blocks/b_footer.html' %} \ No newline at end of file