0.0.1 init, main page prepare
This commit is contained in:
0
GeneralApp/__init__.py
Normal file
0
GeneralApp/__init__.py
Normal file
90
GeneralApp/admin.py
Normal file
90
GeneralApp/admin.py
Normal file
@@ -0,0 +1,90 @@
|
||||
from sets.admin import *
|
||||
from .models import *
|
||||
from django.contrib import admin
|
||||
|
||||
class Admin_StaticPage(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']
|
||||
|
||||
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(StaticPage,Admin_StaticPage)
|
||||
|
||||
class Admin_Block(Admin_BaseBlock):
|
||||
|
||||
def get_fieldsets(self, request, obj=None):
|
||||
fieldsets = super(type(self), self).get_fieldsets(request, obj)
|
||||
if not request.user.is_superuser and obj.name and obj.name in ('About US', 'machines', 'works'):
|
||||
fieldsets[0][1]['fields'].pop(0)
|
||||
fieldsets.insert(
|
||||
1, ('Контент', {
|
||||
'classes': ['wide'],
|
||||
'fields': (
|
||||
'title', 'description', 'text',
|
||||
'picture',
|
||||
)
|
||||
|
||||
})
|
||||
)
|
||||
return fieldsets
|
||||
|
||||
def has_delete_permission(self, request, obj=None):
|
||||
if request.user.is_superuser:
|
||||
return True
|
||||
|
||||
if obj.name in ('About US', 'machines', 'works'):
|
||||
return False
|
||||
|
||||
admin.site.register(Block,Admin_Block)
|
||||
|
||||
class Admin_Option(Admin_BaseModel):
|
||||
|
||||
def get_fieldsets(self, request, obj=None):
|
||||
fieldsets = super(type(self), self).get_fieldsets(request, obj)
|
||||
fieldsets.insert(
|
||||
1, ('Контент', {
|
||||
'classes': ['wide'],
|
||||
'fields': (
|
||||
'opt_type', 'prefix', 'value', 'picture'
|
||||
)
|
||||
|
||||
})
|
||||
)
|
||||
return fieldsets
|
||||
|
||||
admin.site.register(Option,Admin_Option)
|
||||
6
GeneralApp/apps.py
Normal file
6
GeneralApp/apps.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class GeneralappConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'GeneralApp'
|
||||
17
GeneralApp/funcs.py
Normal file
17
GeneralApp/funcs.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from django.http import HttpResponse, Http404, FileResponse
|
||||
|
||||
def get_inter_Dict(user):
|
||||
|
||||
Dict = {}
|
||||
# from SubscribesApp.funcs import get_cur_user_subscribe
|
||||
# user_subscribe = get_cur_user_subscribe(user)
|
||||
|
||||
# Dict.update({'user_subscribe': user_subscribe})
|
||||
|
||||
return Dict
|
||||
|
||||
def get_inter_http_respose(template_obj, context_Dict, request):
|
||||
|
||||
context_Dict.update(get_inter_Dict(request.user))
|
||||
|
||||
return HttpResponse(template_obj.render(context_Dict, request))
|
||||
152
GeneralApp/migrations/0001_initial.py
Normal file
152
GeneralApp/migrations/0001_initial.py
Normal file
@@ -0,0 +1,152 @@
|
||||
# Generated by Django 4.2.7 on 2023-11-16 14:33
|
||||
|
||||
import ckeditor_uploader.fields
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Block',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_ru', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_en', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
|
||||
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
|
||||
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
|
||||
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
|
||||
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
|
||||
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
|
||||
('url', models.TextField(help_text='можно изменить адрес страницы (!!! ВНИМАНИЕ !!! поисковые системы потеряют страницу и найдут лишь спустя неделю...месяц)', unique=True, verbose_name='URL привязанной страницы')),
|
||||
('title', models.TextField(blank=True, null=True, verbose_name='Заголовок')),
|
||||
('title_ru', models.TextField(blank=True, null=True, verbose_name='Заголовок')),
|
||||
('title_en', models.TextField(blank=True, null=True, verbose_name='Заголовок')),
|
||||
('description', ckeditor_uploader.fields.RichTextUploadingField(blank=True, help_text='краткое описание страницы (до 240 символов)', null=True, verbose_name='Краткое описание')),
|
||||
('description_ru', ckeditor_uploader.fields.RichTextUploadingField(blank=True, help_text='краткое описание страницы (до 240 символов)', null=True, verbose_name='Краткое описание')),
|
||||
('description_en', ckeditor_uploader.fields.RichTextUploadingField(blank=True, help_text='краткое описание страницы (до 240 символов)', null=True, verbose_name='Краткое описание')),
|
||||
('text', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Полное описание')),
|
||||
('text_ru', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Полное описание')),
|
||||
('text_en', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Полное описание')),
|
||||
('picture', models.ImageField(blank=True, null=True, upload_to='uploads/', verbose_name='Картинка')),
|
||||
('visible', models.BooleanField(default=True, verbose_name='Отображать')),
|
||||
('background_image_left', models.ImageField(blank=True, null=True, upload_to='', verbose_name='Левая подложка')),
|
||||
('background_image_right', models.ImageField(blank=True, null=True, upload_to='', verbose_name='Правая подложка')),
|
||||
('seo_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='Title (80 знаков)')),
|
||||
('seo_description', models.CharField(blank=True, max_length=250, null=True, verbose_name='Description (150 знаков)')),
|
||||
('seo_keywords', models.CharField(blank=True, max_length=250, null=True, verbose_name='Keywords (200 знаков)')),
|
||||
('seo_text', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Текст SEO статьи')),
|
||||
('FAQ_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='FAQ Заголовок')),
|
||||
('FAQ_title_ru', models.CharField(blank=True, max_length=250, null=True, verbose_name='FAQ Заголовок')),
|
||||
('FAQ_title_en', models.CharField(blank=True, max_length=250, null=True, verbose_name='FAQ Заголовок')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Блок на странице',
|
||||
'verbose_name_plural': 'Блоки на страницах',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Option',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
|
||||
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
|
||||
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
|
||||
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
|
||||
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
|
||||
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
|
||||
('opt_type', models.CharField(blank=True, max_length=250, null=True, verbose_name='Тип')),
|
||||
('prefix', models.CharField(blank=True, max_length=250, null=True, verbose_name='Префикс')),
|
||||
('value', models.CharField(max_length=250, verbose_name='Значение')),
|
||||
('picture', models.ImageField(blank=True, null=True, upload_to='uploads/', verbose_name='Миниатюра')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Параметр',
|
||||
'verbose_name_plural': 'Параметры',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='StaticPage',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_ru', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_en', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
|
||||
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
|
||||
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
|
||||
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
|
||||
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
|
||||
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
|
||||
('url', models.TextField(help_text='можно изменить адрес страницы (!!! ВНИМАНИЕ !!! поисковые системы потеряют страницу и найдут лишь спустя неделю...месяц)', unique=True, verbose_name='URL привязанной страницы')),
|
||||
('title', models.TextField(blank=True, null=True, verbose_name='Заголовок')),
|
||||
('title_ru', models.TextField(blank=True, null=True, verbose_name='Заголовок')),
|
||||
('title_en', models.TextField(blank=True, null=True, verbose_name='Заголовок')),
|
||||
('description', ckeditor_uploader.fields.RichTextUploadingField(blank=True, help_text='краткое описание страницы (до 240 символов)', null=True, verbose_name='Краткое описание')),
|
||||
('description_ru', ckeditor_uploader.fields.RichTextUploadingField(blank=True, help_text='краткое описание страницы (до 240 символов)', null=True, verbose_name='Краткое описание')),
|
||||
('description_en', ckeditor_uploader.fields.RichTextUploadingField(blank=True, help_text='краткое описание страницы (до 240 символов)', null=True, verbose_name='Краткое описание')),
|
||||
('text', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Полное описание')),
|
||||
('text_ru', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Полное описание')),
|
||||
('text_en', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Полное описание')),
|
||||
('picture', models.ImageField(blank=True, null=True, upload_to='uploads/', verbose_name='Картинка')),
|
||||
('visible', models.BooleanField(default=True, verbose_name='Отображать')),
|
||||
('background_image_left', models.ImageField(blank=True, null=True, upload_to='', verbose_name='Левая подложка')),
|
||||
('background_image_right', models.ImageField(blank=True, null=True, upload_to='', verbose_name='Правая подложка')),
|
||||
('seo_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='Title (80 знаков)')),
|
||||
('seo_title_ru', models.CharField(blank=True, max_length=250, null=True, verbose_name='Title (80 знаков)')),
|
||||
('seo_title_en', models.CharField(blank=True, max_length=250, null=True, verbose_name='Title (80 знаков)')),
|
||||
('seo_description', models.CharField(blank=True, max_length=250, null=True, verbose_name='Description (150 знаков)')),
|
||||
('seo_description_ru', models.CharField(blank=True, max_length=250, null=True, verbose_name='Description (150 знаков)')),
|
||||
('seo_description_en', models.CharField(blank=True, max_length=250, null=True, verbose_name='Description (150 знаков)')),
|
||||
('seo_keywords', models.CharField(blank=True, max_length=250, null=True, verbose_name='Keywords (200 знаков)')),
|
||||
('seo_text', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Текст SEO статьи')),
|
||||
('seo_text_ru', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Текст SEO статьи')),
|
||||
('seo_text_en', ckeditor_uploader.fields.RichTextUploadingField(blank=True, null=True, verbose_name='Текст SEO статьи')),
|
||||
('FAQ_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='FAQ Заголовок')),
|
||||
('FAQ_title_ru', models.CharField(blank=True, max_length=250, null=True, verbose_name='FAQ Заголовок')),
|
||||
('FAQ_title_en', models.CharField(blank=True, max_length=250, null=True, verbose_name='FAQ Заголовок')),
|
||||
('promo_header', models.BooleanField(default=False, verbose_name='Промо-хэдер')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Статическая страница',
|
||||
'verbose_name_plural': 'Статические страницы',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='FAQitem',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_ru', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_en', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
|
||||
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
|
||||
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
|
||||
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
|
||||
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
|
||||
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
|
||||
('object_id', models.PositiveIntegerField()),
|
||||
('question', models.TextField(verbose_name='Вопрос')),
|
||||
('question_ru', models.TextField(null=True, verbose_name='Вопрос')),
|
||||
('question_en', models.TextField(null=True, verbose_name='Вопрос')),
|
||||
('answer', ckeditor_uploader.fields.RichTextUploadingField(verbose_name='Ответ')),
|
||||
('answer_ru', ckeditor_uploader.fields.RichTextUploadingField(null=True, verbose_name='Ответ')),
|
||||
('answer_en', ckeditor_uploader.fields.RichTextUploadingField(null=True, verbose_name='Ответ')),
|
||||
('content_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='contenttypes.contenttype')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'FAQ',
|
||||
'verbose_name_plural': 'FAQs',
|
||||
},
|
||||
),
|
||||
]
|
||||
0
GeneralApp/migrations/__init__.py
Normal file
0
GeneralApp/migrations/__init__.py
Normal file
50
GeneralApp/models.py
Normal file
50
GeneralApp/models.py
Normal file
@@ -0,0 +1,50 @@
|
||||
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
|
||||
|
||||
class StaticPage(BaseModelViewPage):
|
||||
promo_header = models.BooleanField(verbose_name='Промо-хэдер', default=False)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Статическая страница')
|
||||
verbose_name_plural = _('Статические страницы')
|
||||
|
||||
class Block(BaseModelViewPage):
|
||||
class Meta:
|
||||
verbose_name = _('Блок на странице')
|
||||
verbose_name_plural = _('Блоки на страницах')
|
||||
|
||||
class Option(BaseModel):
|
||||
opt_type = models.CharField(max_length=250, verbose_name='Тип', blank=True, null=True)
|
||||
prefix = models.CharField(max_length=250, verbose_name='Префикс', blank=True, null=True)
|
||||
value = models.CharField(max_length=250, verbose_name='Значение')
|
||||
picture = models.ImageField(upload_to='uploads/', verbose_name=_('Миниатюра'), null=True, blank=True,
|
||||
help_text=u'')
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Параметр')
|
||||
verbose_name_plural = _('Параметры')
|
||||
|
||||
class FAQitem(BaseModel):
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||
|
||||
content_type = models.ForeignKey(ContentType, on_delete=models.SET_NULL, null=True)
|
||||
object_id = models.PositiveIntegerField()
|
||||
content_object = GenericForeignKey('content_type', 'object_id')
|
||||
|
||||
question = models.TextField(verbose_name='Вопрос')
|
||||
answer = RichTextUploadingField(verbose_name='Ответ')
|
||||
|
||||
def __str__(self):
|
||||
if self.question:
|
||||
return self.question
|
||||
else:
|
||||
return self.id
|
||||
|
||||
class Meta:
|
||||
verbose_name = 'FAQ'
|
||||
verbose_name_plural = 'FAQs'
|
||||
1
GeneralApp/templatetags/__init__.py
Normal file
1
GeneralApp/templatetags/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
__author__ = 'SDE'
|
||||
156
GeneralApp/templatetags/base_tags_extra.py
Normal file
156
GeneralApp/templatetags/base_tags_extra.py
Normal file
@@ -0,0 +1,156 @@
|
||||
__author__ = 'SDE'
|
||||
|
||||
from django import template
|
||||
from django.template.defaultfilters import stringfilter
|
||||
|
||||
register = template.Library()
|
||||
|
||||
from django.core.serializers import serialize
|
||||
from django.db.models.query import QuerySet
|
||||
# import simplejson
|
||||
from django.template import Library
|
||||
from django.utils.html import mark_safe
|
||||
|
||||
@register.filter('get_value_from_dict')
|
||||
def get_value_from_dict(dict_data, key):
|
||||
"""
|
||||
usage example {{ your_dict|get_value_from_dict:your_key }}
|
||||
"""
|
||||
|
||||
if key in dict_data:
|
||||
res = dict_data[key]
|
||||
return res
|
||||
|
||||
return False
|
||||
|
||||
|
||||
|
||||
@register.filter()
|
||||
def get_rows_count_by_cols_count(data, cols_count):
|
||||
rows_count = len(data) // cols_count
|
||||
if len(data) % cols_count:
|
||||
rows_count += 1
|
||||
return rows_count
|
||||
|
||||
@register.filter()
|
||||
def get_numbers_list(from_el, to_el):
|
||||
res = range(from_el, to_el+1)
|
||||
return res
|
||||
|
||||
|
||||
def val_type(value):
|
||||
res = type(value)
|
||||
return res.__name__
|
||||
register.filter('val_type', val_type)
|
||||
|
||||
@register.filter()
|
||||
def get_cols_table_data_for_row_when_cols3(value, row):
|
||||
el_count = 3
|
||||
from_el = (row-1) * el_count
|
||||
to_el = row * el_count
|
||||
part = list(value)[from_el:to_el]
|
||||
return part
|
||||
# register.filter('val_type', val_type)
|
||||
|
||||
|
||||
@register.filter
|
||||
@stringfilter
|
||||
def correct_for_tables(value):
|
||||
if value in ['None', '0.0']:
|
||||
return '-'
|
||||
return value
|
||||
|
||||
|
||||
@register.filter
|
||||
@stringfilter
|
||||
def del_bad_symbols(value):
|
||||
from BaseModels.functions import del_bad_symbols
|
||||
return del_bad_symbols(value)
|
||||
|
||||
|
||||
@register.filter
|
||||
@stringfilter
|
||||
def del_amp_symbols(value):
|
||||
from BaseModels.functions import del_nbsp
|
||||
return del_nbsp(value)
|
||||
|
||||
@register.filter
|
||||
@stringfilter
|
||||
def del_lang_from_path(value):
|
||||
path_list = value.split('/')
|
||||
path = '/' + '/'.join(path_list[2:])
|
||||
|
||||
# for i in path_list[1:]:
|
||||
# path.join(i + '/')
|
||||
return path
|
||||
|
||||
@register.filter
|
||||
@stringfilter
|
||||
def get_color_by_number(value, arg=None):
|
||||
|
||||
color = None
|
||||
try:
|
||||
val = float(value)
|
||||
|
||||
if not color and arg == u'%':
|
||||
|
||||
color = u'black'
|
||||
if val > 50:
|
||||
color = u'green'
|
||||
elif val <= 50 and val >= 25:
|
||||
color = u'#6c8107'
|
||||
elif val <= 25 and val >= 10:
|
||||
color = u'#a89803'
|
||||
elif val <= 10 and val >= 5:
|
||||
color = u'#e6a707'
|
||||
elif val <= 5 and val >= 0:
|
||||
color = u'#e67307'
|
||||
elif val <= 0:
|
||||
color = u'red'
|
||||
|
||||
|
||||
# val_range = val_max - val_min
|
||||
# # val_percent = (val_range * 100 / val) - 100
|
||||
# offset = -(val_min + -(val))
|
||||
# if val <0:
|
||||
# val = offset
|
||||
# if val > val_max:
|
||||
# val = val_max
|
||||
# elif val < 0:
|
||||
# val = 0
|
||||
#
|
||||
# color_range = 16711680 - 1211136
|
||||
# val_1unit = float(color_range) / float(val_range)
|
||||
# dec_color = 16711680 - int(val_1unit * val)
|
||||
|
||||
if not color:
|
||||
color = u'black'
|
||||
if val > 1000:
|
||||
color = u'green'
|
||||
elif val <= 1000 and val >= 500:
|
||||
color = u'#6c8107'
|
||||
elif val <= 500 and val >= 250:
|
||||
color = u'#a89803'
|
||||
elif val <= 250 and val >= 125:
|
||||
color = u'#e6a707'
|
||||
elif val <= 125 and val >= 50:
|
||||
color = u'#e67307'
|
||||
elif val <= 50:
|
||||
color = u'red'
|
||||
|
||||
# s = u'style="color: #{0}12;"'.format(str(hex(dec_color))[2:6])
|
||||
s = u'style="color: {0};"'.format(color)
|
||||
return s
|
||||
except:
|
||||
return u''
|
||||
|
||||
|
||||
# @register.filter
|
||||
# @stringfilter
|
||||
# def check_aprox_compare_strings(search_phrase, txt):
|
||||
# from ProductApp.search import get_highlight_string
|
||||
#
|
||||
# s = get_highlight_string(search_phrase, txt)
|
||||
#
|
||||
# return s
|
||||
|
||||
3
GeneralApp/tests.py
Normal file
3
GeneralApp/tests.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
23
GeneralApp/translation.py
Normal file
23
GeneralApp/translation.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from modeltranslation.translator import translator, TranslationOptions
|
||||
from .models import *
|
||||
|
||||
|
||||
class StaticPage_TranslationOptions(TranslationOptions):
|
||||
fields = (
|
||||
'name', 'description', 'text', 'title', 'FAQ_title', 'seo_title', 'seo_description', 'seo_text'
|
||||
)
|
||||
translator.register(StaticPage, StaticPage_TranslationOptions)
|
||||
|
||||
class Block_TranslationOptions(TranslationOptions):
|
||||
fields = (
|
||||
'name', 'description', 'text', 'title', 'FAQ_title'
|
||||
)
|
||||
translator.register(Block, Block_TranslationOptions)
|
||||
|
||||
|
||||
class FAQitem_TranslationOptions(TranslationOptions):
|
||||
fields = (
|
||||
'name', 'question', 'answer'
|
||||
)
|
||||
translator.register(FAQitem, FAQitem_TranslationOptions)
|
||||
|
||||
11
GeneralApp/urls.py
Normal file
11
GeneralApp/urls.py
Normal file
@@ -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/<str:url>/', StaticPageView, name='static_page'),
|
||||
path('test_code', test_code, name='test_code'),
|
||||
]
|
||||
86
GeneralApp/views.py
Normal file
86
GeneralApp/views.py
Normal file
@@ -0,0 +1,86 @@
|
||||
import json
|
||||
|
||||
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 .funcs import get_inter_http_respose
|
||||
|
||||
def test_code(request):
|
||||
|
||||
|
||||
return HttpResponse('finished')
|
||||
|
||||
|
||||
def MainPage(request):
|
||||
|
||||
print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}')
|
||||
|
||||
page = StaticPage.objects.get(url='main')
|
||||
|
||||
# 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(),
|
||||
# 'articles': arts,
|
||||
'owner_type': 'mover'
|
||||
}
|
||||
|
||||
breadcrumbs_Dict = {
|
||||
}
|
||||
Dict.update({'breadcrumbs': breadcrumbs_Dict})
|
||||
|
||||
t = loader.get_template('pages/p_main.html')
|
||||
return get_inter_http_respose(t, Dict, request)
|
||||
# return HttpResponse(t.render(Dict, request))
|
||||
|
||||
|
||||
|
||||
def StaticPageView(request, url):
|
||||
# from RoutesApp.forms import RouteForm
|
||||
# from SubscribesApp.funcs import get_subsribes_w_options
|
||||
|
||||
Dict = {}
|
||||
|
||||
if url == '':
|
||||
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']:
|
||||
raise Http404
|
||||
|
||||
# if url in ['for_movers', 'for_customers']:
|
||||
# subscribes, all_options = get_subsribes_w_options()
|
||||
# Dict.update({
|
||||
# 'subscribes': subscribes,
|
||||
# })
|
||||
|
||||
try:
|
||||
page = StaticPage.objects.get(url=url)
|
||||
except StaticPage.DoesNotExist:
|
||||
raise Http404
|
||||
|
||||
|
||||
Dict.update({
|
||||
'page': page,
|
||||
})
|
||||
|
||||
t = loader.get_template('pages/p_static_page.html')
|
||||
return get_inter_http_respose(t, Dict, request)
|
||||
# return HttpResponse(t.render(Dict, request))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user