diff --git a/.gitignore b/.gitignore index 79fd6ba..5abf791 100644 --- a/.gitignore +++ b/.gitignore @@ -494,3 +494,4 @@ cython_debug/ # Android studio 3.1+ serialized cache file +!/db.sqlite3 diff --git a/GeneralApp/views.py b/GeneralApp/views.py index 443fec0..beffdf4 100644 --- a/GeneralApp/views.py +++ b/GeneralApp/views.py @@ -15,24 +15,24 @@ def test_code(request): def MainPage(request): - print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}') + # print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}') 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, - 'FAQ': page.FAQ_items.filter(enable=True), - # 'route_form': RouteForm(), + 'sections': sections # 'articles': arts, - 'owner_type': 'mover' } - breadcrumbs_Dict = { - } - Dict.update({'breadcrumbs': breadcrumbs_Dict}) + # breadcrumbs_Dict = { + # } + # Dict.update({'breadcrumbs': breadcrumbs_Dict}) t = loader.get_template('pages/p_main.html') return get_inter_http_respose(t, Dict, request) diff --git a/ServicesApp/admin.py b/ServicesApp/admin.py index 8c38f3f..6fce285 100644 --- a/ServicesApp/admin.py +++ b/ServicesApp/admin.py @@ -1,3 +1,66 @@ +from sets.admin import * +from .models import * from django.contrib import admin +from django.forms import widgets +# from nested_inline.admin import NestedStackedInline, NestedTabularInline, NestedModelAdmin, NestedInline +from super_inlines.admin import SuperInlineModelAdmin, SuperModelAdmin +from GeneralApp.admin import Admin_StackedInline_Block + +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': + field.widget = widgets.TextInput(attrs={'style': 'width: 30%; height: 20px;'}) + if db_field.name == 'description': + field.widget = widgets.Textarea(attrs={'style': 'width: 30%; height: 100px;'}) + return field + + + +# class Admin_StaticPage(NestedModelAdmin, Admin_Trans_BaseModelViewPage): +class Admin_Section(SuperModelAdmin, Admin_Trans_BaseModelViewPage): + + + fieldsets = [ + (None, { + 'classes': ['wide'], + 'fields': ('name', + 'url', + 'title', 'description', 'text', + 'picture', + 'order', + ) + }), + ('SEO', { + 'classes': ['wide', 'collapse'], + 'fields': ( + 'seo_title', 'seo_description', 'seo_keywords', 'seo_text', + ) + }), + ] + + + list_display = [ + 'id', + 'name', 'url', 'title', + 'order', 'modifiedDT', 'createDT' + ] + + list_display_links = ['id'] + list_editable = ['order'] + + list_filter = ['modifiedDT', 'createDT'] + search_fields = ['name', 'title'] + # filter_horizontal = ['options'] + + inlines = [Admin_StackedInline_Block] + + def has_delete_permission(self, request, obj=None): + if request.user.is_superuser: + return True + + if obj.url in ('main', 'spec_technics', 'works'): + return False + +admin.site.register(Section,Admin_Section) + + -# Register your models here. diff --git a/ServicesApp/funcs.py b/ServicesApp/funcs.py new file mode 100644 index 0000000..f054e88 --- /dev/null +++ b/ServicesApp/funcs.py @@ -0,0 +1,6 @@ +from .models import * + +def get_sections(): + + sections = Section.objects.filter(enable=True) + return sections \ No newline at end of file diff --git a/ServicesApp/js_urls.py b/ServicesApp/js_urls.py new file mode 100644 index 0000000..ce76406 --- /dev/null +++ b/ServicesApp/js_urls.py @@ -0,0 +1,11 @@ +from django.contrib import admin +from django.urls import path, include +from django.conf.urls.static import static +from django.conf import settings +from .js_views import * + +urlpatterns = [ + path('get_content_for_section', get_content_for_section_ajax, name='main'), + # path('page//', StaticPageView, name='static_page'), + # path('test_code', test_code, name='test_code'), +] \ No newline at end of file diff --git a/ServicesApp/js_views.py b/ServicesApp/js_views.py new file mode 100644 index 0000000..95cac09 --- /dev/null +++ b/ServicesApp/js_views.py @@ -0,0 +1,56 @@ +import json + +from django.shortcuts import render + +from uuid import uuid1 +from .models import * +from django.contrib import auth +from django.http import HttpResponse, Http404, JsonResponse +from django.template import loader, RequestContext +from django.contrib.auth.decorators import login_required +from BaseModels.mailSender import techSendMail +from django.utils.translation import gettext as _ +from datetime import datetime +from django.template.loader import render_to_string +from django.urls import reverse +from .funcs import * + +def get_content_for_section_ajax(request): + if request.method != 'POST': + raise Http404 + + try: + + + data = request.POST.dict() + if not data and request.body: + data = json.loads(request.body) + + if not 'section_url' in data or not data['section_url']: + msg = _("Не найден section_url в data") + err_Dict = { + 'error': msg + } + return JsonResponse(err_Dict, status=400) + + section = Section.objects.get(url=data['section_url']) + + + html = render_to_string('blocks/b_search_routes.html', routes_Dict, request=request) + + res_Dict = { + 'html': html, + 'last_block': routes_Dict['last_block'] + # 'form': RouteForm(initial=data) + } + + return JsonResponse(res_Dict) + + except Exception as e: + + errors_Dict = { + 'errors': { + 'all__': f'ошибка в запросе = {str(e)}' + } + } + return JsonResponse(errors_Dict, status=400) diff --git a/ServicesApp/urls.py b/ServicesApp/urls.py new file mode 100644 index 0000000..0902739 --- /dev/null +++ b/ServicesApp/urls.py @@ -0,0 +1,11 @@ +from django.contrib import admin +from django.urls import path, include +from django.conf.urls.static import static +from django.conf import settings +from .views import * + +urlpatterns = [ + # path('', MainPage, name='main'), + # path('page//', StaticPageView, name='static_page'), + # path('test_code', test_code, name='test_code'), +] \ No newline at end of file diff --git a/db.sqlite3 b/db.sqlite3 index 583bdd8..2c43f0b 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/pAerBim/urls.py b/pAerBim/urls.py index 389505f..45109b5 100644 --- a/pAerBim/urls.py +++ b/pAerBim/urls.py @@ -5,10 +5,10 @@ from django.conf.urls.static import static from django.conf import settings urlpatterns = [ - # path('admin/', admin.site.urls), path('ckeditor/', include('ckeditor_uploader.urls')), path('i18n/', include('django.conf.urls.i18n')), - # path('_nested_admin/', include('nested_admin.urls')), + + path('', include('ServicesApp.js_urls')), ] from django.conf.urls.i18n import i18n_patterns @@ -17,6 +17,7 @@ urlpatterns += i18n_patterns( path('admin/', admin.site.urls), path('', include('GeneralApp.urls')), + path('', include('ServicesApp.urls')), )