From eef2ca509ace1e39ed3e15b00bba6aed1baad434 Mon Sep 17 00:00:00 2001 From: SDE Date: Sun, 26 Nov 2023 18:29:37 +0300 Subject: [PATCH] 0.0.9 section view --- GeneralApp/admin.py | 4 ++-- GeneralApp/funcs.py | 6 ++++++ GeneralApp/views.py | 3 --- ServicesApp/urls.py | 2 +- ServicesApp/views.py | 35 ++++++++++++++++++++++++++++++-- SlidesApp/__init__.py | 0 SlidesApp/admin.py | 3 +++ SlidesApp/apps.py | 6 ++++++ SlidesApp/migrations/__init__.py | 0 SlidesApp/models.py | 32 +++++++++++++++++++++++++++++ SlidesApp/tests.py | 3 +++ SlidesApp/views.py | 3 +++ templates/pages/p_section.html | 10 +++++++++ 13 files changed, 99 insertions(+), 8 deletions(-) create mode 100644 SlidesApp/__init__.py create mode 100644 SlidesApp/admin.py create mode 100644 SlidesApp/apps.py create mode 100644 SlidesApp/migrations/__init__.py create mode 100644 SlidesApp/models.py create mode 100644 SlidesApp/tests.py create mode 100644 SlidesApp/views.py create mode 100644 templates/pages/p_section.html diff --git a/GeneralApp/admin.py b/GeneralApp/admin.py index 2a40f9e..abdc779 100644 --- a/GeneralApp/admin.py +++ b/GeneralApp/admin.py @@ -32,7 +32,7 @@ class Admin_Inline_WidgetForBlock(SuperInlineModelAdmin, Admin_Trans_BaseIconSta ('title', 'description', 'picture'), ('bg_color', ), ('but_title', 'but_color'), - ('url',), + ('url', 'order'), ] }) ] @@ -56,7 +56,7 @@ class Admin_StackedInline_Block(Admin_Trans_GenericBaseIconStackedInline, SuperI ('bg_color', ), ('but_title', 'but_color'), ('url',), - ('child_in_row_count',), + ('child_in_row_count', 'order'), ] }) ] diff --git a/GeneralApp/funcs.py b/GeneralApp/funcs.py index d7374a6..da305d4 100644 --- a/GeneralApp/funcs.py +++ b/GeneralApp/funcs.py @@ -3,6 +3,12 @@ from django.http import HttpResponse, Http404, FileResponse def get_inter_Dict(user): Dict = {} + + from ServicesApp.funcs import get_sections + sections = get_sections() + Dict.update({ + 'sections': sections + }) # from SubscribesApp.funcs import get_cur_user_subscribe # user_subscribe = get_cur_user_subscribe(user) diff --git a/GeneralApp/views.py b/GeneralApp/views.py index beffdf4..0fd15e7 100644 --- a/GeneralApp/views.py +++ b/GeneralApp/views.py @@ -19,14 +19,11 @@ def MainPage(request): page = StaticPage.objects.get(url='main') - from ServicesApp.funcs import get_sections - sections = get_sections() # from ArticlesApp.models import ArticleModel # arts = ArticleModel.objects.filter(enable=True).order_by('-createDT')[:4] Dict = { 'page': page, - 'sections': sections # 'articles': arts, } diff --git a/ServicesApp/urls.py b/ServicesApp/urls.py index 0902739..1bb9ade 100644 --- a/ServicesApp/urls.py +++ b/ServicesApp/urls.py @@ -5,7 +5,7 @@ from django.conf import settings from .views import * urlpatterns = [ - # path('', MainPage, name='main'), + path('section//', section_view, name='section_page'), # path('page//', StaticPageView, name='static_page'), # path('test_code', test_code, name='test_code'), ] \ No newline at end of file diff --git a/ServicesApp/views.py b/ServicesApp/views.py index 91ea44a..0dce0ff 100644 --- a/ServicesApp/views.py +++ b/ServicesApp/views.py @@ -1,3 +1,34 @@ -from django.shortcuts import render +import json -# Create your views here. +from django.http import HttpResponse, Http404, FileResponse +from django.template import loader, RequestContext +from django.contrib.auth.decorators import login_required +from .models import * +from django.conf import settings +from GeneralApp.funcs import get_inter_http_respose + +def section_view(request, url): + + try: + page = Section.objects.get(url=url) + + + # from ArticlesApp.models import ArticleModel + # arts = ArticleModel.objects.filter(enable=True).order_by('-createDT')[:4] + + Dict = { + 'page': page, + # 'articles': arts, + } + + # breadcrumbs_Dict = { + # } + # Dict.update({'breadcrumbs': breadcrumbs_Dict}) + + t = loader.get_template('pages/p_section.html') + return get_inter_http_respose(t, Dict, request) + + except Exception as e: + msg = f'section_view Error = {str(e)}' + print(msg) + return HttpResponse(msg, status=400) diff --git a/SlidesApp/__init__.py b/SlidesApp/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/SlidesApp/admin.py b/SlidesApp/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/SlidesApp/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/SlidesApp/apps.py b/SlidesApp/apps.py new file mode 100644 index 0000000..ef2c330 --- /dev/null +++ b/SlidesApp/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class SlidesappConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'SlidesApp' diff --git a/SlidesApp/migrations/__init__.py b/SlidesApp/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/SlidesApp/models.py b/SlidesApp/models.py new file mode 100644 index 0000000..385710a --- /dev/null +++ b/SlidesApp/models.py @@ -0,0 +1,32 @@ +from django.db import models +from BaseModels.base_models import BaseModelViewPage, BaseModel +from django.utils.translation import gettext_lazy as _ +# from ckeditor.fields import RichTextField +from ckeditor_uploader.fields import RichTextUploadingField +# from colorfield.fields import ColorField +from django.contrib.contenttypes.models import ContentType +from django.contrib.contenttypes.fields import GenericForeignKey +from django.contrib.contenttypes.fields import GenericRelation +from colorfield.fields import ColorField + +class Slide(BaseModel): + content_type = models.ForeignKey(ContentType, on_delete=models.SET_NULL, null=True) + object_id = models.PositiveIntegerField() + content_object = GenericForeignKey('content_type', 'object_id') + + url = models.TextField(verbose_name=_('URL привязанной страницы'), blank=True, null=True) + title = models.TextField(verbose_name=_('Заголовок'), null=True, blank=True) + description = RichTextUploadingField(verbose_name=_('Краткое описание'), null=True, blank=True) + text = RichTextUploadingField(verbose_name=_('Полное описание'), null=True, blank=True, ) + + picture = models.ImageField( + upload_to='uploads/', verbose_name=_('Фоновое изображение'), null=True, blank=True) + bg_color = ColorField(verbose_name=_('Цвет фона'), default='#FFFFFF') + + but_title = models.CharField(max_length=100, verbose_name=_('Текст на кнопке'), null=True, blank=True) + but_color = ColorField(verbose_name=_('Цвет кнопки'), default='#000000') + + class Meta: + verbose_name = _('Слайд') + verbose_name_plural = _('Слайды') + diff --git a/SlidesApp/tests.py b/SlidesApp/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/SlidesApp/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/SlidesApp/views.py b/SlidesApp/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/SlidesApp/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/templates/pages/p_section.html b/templates/pages/p_section.html new file mode 100644 index 0000000..566549b --- /dev/null +++ b/templates/pages/p_section.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + \ No newline at end of file