Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- from django.template import defaultfilters
- from django.contrib.auth.models import User, Group
- from django.utils import timezone
- from django.utils.dateformat import format
- from django.conf import settings
- from django.contrib.sites.models import Site
- from ckeditor.fields import RichTextField
- from django.urls import reverse, reverse_lazy
- import datetime
- import json
- import uuid
- import re
- import math
- from django.db import models
- class Page(models.Model):
- class Meta:
- abstract = True
- hash = models.CharField(max_length=200, verbose_name="Хэш")
- alias = models.SlugField(max_length=200, verbose_name="Псевдоним")
- content = models.TextField(verbose_name=u"Статья", null=True, blank=True)
- #content = RichTextField(
- # verbose_name="Статья", config_name="default", null=True, blank=True
- #)
- seo_h1 = models.CharField(
- max_length=200, verbose_name="H1", null=True, blank=True)
- seo_title = models.CharField(
- max_length=200, verbose_name="Title", null=True, blank=True
- )
- seo_description = models.CharField(
- max_length=500, verbose_name="Description", null=True, blank=True
- )
- seo_keywords = models.CharField(
- max_length=200, verbose_name="Keywords", null=True, blank=True
- )
- menutitle = models.CharField(
- max_length=200, verbose_name="Название в меню", null=True, blank=True
- )
- menuposition = models.IntegerField(
- max_length=200, verbose_name="Позиция в меню", null=True, blank=True
- )
- menushow = models.BooleanField(
- default=True, verbose_name="Показывать в меню")
- sitemap = models.BooleanField(
- default=True, verbose_name="Показывать в карте сайта")
- og_title = models.CharField(
- max_length=200, verbose_name="OG Title", null=True, blank=True
- )
- og_description = models.TextField(
- max_length=2000, verbose_name="OG Description", null=True, blank=True
- )
- og_type = models.CharField(
- max_length=200, verbose_name="OG Type", null=True, blank=True
- )
- og_image = models.CharField(
- max_length=500, verbose_name="OG image", null=True, blank=True
- )
- og_type_pb_time = models.DateField(
- default=datetime.date.today, verbose_name="Время публикации"
- )
- og_type_author = models.CharField(
- max_length=200, verbose_name="OG author", null=True, blank=True
- )
- host = models.ForeignKey(
- Site, on_delete=models.deletion.SET_DEFAULT, default=2, verbose_name="Хост"
- )
- class Textpage(Page):
- class Meta:
- verbose_name = "Текстовая страница"
- verbose_name_plural = "Страницы"
- maintitle = models.CharField(max_length=200, verbose_name="Название")
- menuposition = models.IntegerField(verbose_name="Позиция в меню")
- def __str__(self):
- return self.maintitle
- def get_absolute_url(self):
- if self.alias == "index":
- return reverse('index', kwargs={})
- else:
- return reverse('textpage', kwargs={'alias': self.alias})
- class Subcategory(Page):
- class Meta:
- verbose_name = "Подкатегория"
- verbose_name_plural = "Подкатегории"
- name = models.CharField(
- max_length=200, verbose_name="Название подкатегории")
- comment = models.CharField(
- max_length=2000, verbose_name="Комментарий", null=True, blank=True
- )
- def __str__(self):
- return self.name
- def get_absolute_url(self):
- return reverse('subcat', kwargs={'alias': self.alias})
- class Category(Page):
- class Meta:
- verbose_name = "Категория"
- verbose_name_plural = "Категории"
- name = models.CharField(max_length=200, verbose_name="Название категории")
- comment = models.CharField(
- max_length=2000, verbose_name="Комментарий", null=True, blank=True
- )
- domain = models.CharField(
- max_length=100, verbose_name="Домен", null=True, blank=True
- )
- category = models.ForeignKey(
- Subcategory,
- verbose_name="Подкатегория",
- null=True,
- blank=True,
- on_delete=models.CASCADE,
- )
- language = models.CharField(
- max_length=100, verbose_name="Язык", null=True, blank=True
- )
- osob = models.CharField(
- max_length=100, verbose_name="Особенности", null=True, blank=True
- )
- def __str__(self):
- return self.name
- def get_absolute_url(self):
- return reverse('category', kwargs={'alias': self.alias})
- class Reservation(Page):
- class Meta:
- verbose_name = "Заявка на аккаунт"
- verbose_name_plural = "Заявки на аккаунт"
- name = models.CharField(max_length=200, verbose_name="Название заявки")
- mail = models.CharField(max_length=200, verbose_name="Почта клиента")
- comment = models.CharField(
- max_length=2000, verbose_name="Комментарий", null=True, blank=True
- )
- count = models.IntegerField(
- verbose_name="Количество аккаунтов", null=True, blank=True
- )
- service = models.CharField(
- max_length=100, verbose_name="Сервис", null=True, blank=True
- )
- datetime = models.DateTimeField(
- default=datetime.datetime.now(), verbose_name="Время заявки"
- )
- def __str__(self):
- return self.name
- class Service(Page):
- class Meta:
- verbose_name = "Услуга"
- verbose_name_plural = "Услуги"
- name = models.CharField(max_length=200, verbose_name="Название услуги")
- menuposition = models.IntegerField(
- verbose_name="Позиция в меню", null=True, blank=True
- )
- price = models.FloatField(default=1, verbose_name="Цена за услугу")
- description = models.CharField(
- max_length=1000,
- verbose_name="Описание услуги(до 1000 символов)",
- null=True,
- blank=True,
- )
- pic = models.ImageField(
- verbose_name="Изображение товара(превью)", null=True, blank=True
- )
- item_image = models.ImageField(
- verbose_name="Картинка на странице товара", null=True, blank=True
- )
- comment = models.CharField(
- max_length=2000, verbose_name="Комментарий", null=True, blank=True
- )
- discount = models.IntegerField(
- verbose_name="Скидка", null=True, blank=True)
- def __str__(self):
- return self.name
- class Item(Page):
- class Meta:
- verbose_name = "Товар"
- verbose_name_plural = "Товары"
- name = models.CharField(max_length=200, verbose_name="Название товара")
- menuposition = models.IntegerField(
- verbose_name="Позиция в меню", null=True, blank=True
- )
- price = models.FloatField(default=1, verbose_name="Цена за единицу товара")
- category = models.ForeignKey(
- Category,
- verbose_name="Категория",
- null=True,
- blank=True,
- on_delete=models.CASCADE,
- )
- min_pay = models.IntegerField(
- default=1, verbose_name="Минимальная количество покупки"
- )
- count = models.IntegerField(
- default=0, verbose_name="Количество товара", null=True, blank=True
- )
- items = models.TextField(
- verbose_name="Строки товара", null=True, blank=True)
- description = models.CharField(
- max_length=1000,
- verbose_name="Описание товара(до 1000 символов)",
- null=True,
- blank=True,
- )
- pic = models.ImageField(
- verbose_name="Изображение товара(превью)", null=True, blank=True
- )
- itemimage = models.ImageField(
- verbose_name="Картинка на странице товара", null=True, blank=True
- )
- comment = models.CharField(
- max_length=2000, verbose_name="Комментарий", null=True, blank=True
- )
- discount = models.IntegerField(
- verbose_name="Скидка", null=True, blank=True)
- def __str__(self):
- return self.alias
- def get_absolute_url(self):
- return reverse('product', kwargs={'alias': self.category.alias, 'product': self.alias})
- class Client(models.Model):
- class Meta:
- verbose_name = "Клиент"
- verbose_name_plural = "Клиенты"
- mail = models.CharField(max_length=200, verbose_name="Ящик клиента")
- def __str__(self):
- return self.mail
- class PayMethod(models.Model):
- class Meta:
- verbose_name = "Метод оплаты"
- verbose_name_plural = "Методы оплаты"
- paymethod = models.CharField(max_length=200, verbose_name="Тип Оплаты")
- token = models.CharField(max_length=2000, verbose_name="Токен системы")
- phone = models.CharField(max_length=20, verbose_name="Номер телефона")
- def __str__(self):
- return self.paymethod
- class Promocode(models.Model):
- class Meta:
- verbose_name = "Промокод"
- verbose_name_plural = "Промокоды"
- name = models.CharField(verbose_name="Наименование", max_length=100)
- code = models.CharField(verbose_name="Промокод", max_length=100)
- percentage = models.IntegerField(verbose_name="Скидка (%)", null=True)
- creation_date = models.DateTimeField(
- default=datetime.datetime.now(), verbose_name="Дата создания"
- )
- completion_date = models.DateTimeField(verbose_name="Дата окончания")
- def __str__(self):
- return "{} ({})".format(self.code, self.name)
- class Order(models.Model):
- class Meta:
- verbose_name = "Заказ"
- verbose_name_plural = "Заказы"
- order_id = models.IntegerField(verbose_name="Id Заказа")
- hash = models.CharField(
- max_length=100, verbose_name="Hash заказа", null=True, blank=True
- )
- paymethod = models.ForeignKey(
- PayMethod, verbose_name="Метод оплаты", on_delete=models.CASCADE
- )
- client = models.ForeignKey(
- Client, verbose_name="Клиент", on_delete=models.CASCADE)
- purse = models.CharField(
- max_length=200, verbose_name="Номер Кошелька", null=True, blank=True
- )
- item = models.ForeignKey(Item, verbose_name="Товар",
- on_delete=models.CASCADE)
- count = models.IntegerField(verbose_name="Кол-во аккаунтов")
- items = models.TextField(
- verbose_name="Строки товара", null=True, blank=True)
- status = models.CharField(max_length=20, verbose_name="Статус заказа")
- price = models.FloatField(verbose_name="Сумма заказа")
- datetime = models.DateTimeField(
- default=datetime.datetime.now, verbose_name="Время покупки"
- )
- promocode = models.ForeignKey(
- Promocode,
- verbose_name="Промокод",
- null=True,
- blank=True,
- on_delete=models.SET_NULL
- )
- def __str__(self):
- return self.hash
- class ClientsAndOrders(models.Model):
- class Meta:
- verbose_name = "Клиент и их заказы"
- verbose_name_plural = "Клиент и их заказы"
- client = models.ForeignKey(
- Client, verbose_name="Клиент", on_delete=models.CASCADE)
- orders = models.ManyToManyField(Order, verbose_name="Заказы", blank=True)
- def __str__(self):
- return self.client.mail
- class CommentAuths(models.Model):
- class Meta:
- verbose_name = "Авторизированные юзеры(к)"
- verbose_name_plural = "Авторизированные юзеры(к)"
- vkid = models.CharField(max_length=100, verbose_name="id vk")
- username = models.CharField(max_length=500, verbose_name="Имя в вк")
- hash = models.CharField(max_length=500, verbose_name="hash")
- avatar = models.CharField(max_length=500, verbose_name="avatar")
- admin = models.BooleanField(default=False, verbose_name="Админ")
- def __str__(self):
- return self.vkid
- class CommentVk(models.Model):
- class Meta:
- verbose_name = "Комментарий вк"
- verbose_name_plural = "Комментарии вк"
- vkid = models.CharField(max_length=100, verbose_name="id vk")
- username = models.CharField(max_length=500, verbose_name="Имя в вк")
- time = models.CharField(max_length=500, verbose_name="Дата коммента")
- comment = models.CharField(
- max_length=5000, verbose_name="Плохой коментарий")
- news_comment = models.CharField(
- max_length=5000, verbose_name="Хороший Коментарий", null=True, blank=True
- )
- avatar = models.CharField(max_length=500, verbose_name="avatar")
- view = models.BooleanField(default=False, verbose_name="Показывать?")
- def datetime(self):
- time = dict(
- time=datetime.datetime.fromtimestamp(int(self.time)),
- now=datetime.datetime.now(),
- )
- return time
- def __str__(self):
- return self.vkid
- class Blog(Page):
- class Meta:
- verbose_name = "Блог"
- verbose_name_plural = "Блоги"
- name = models.CharField(max_length=200, verbose_name="Название Блога")
- datetime = models.DateTimeField(
- default=datetime.datetime.now(), verbose_name="Время публикации"
- )
- def __str__(self):
- return self.hash
- class Scripts(models.Model):
- class Meta:
- verbose_name = "Скрипт"
- verbose_name_plural = "Импортируемые скрипты"
- name = models.CharField(max_length=200, verbose_name="Заголовок")
- content = models.TextField(verbose_name="Содержимое")
- to_head = models.BooleanField(default=False, verbose_name="Для HEAD")
- def __str__(self):
- return self.name
- class Robots(models.Model):
- class Meta:
- verbose_name = "Robots"
- verbose_name_plural = "Robots"
- content = models.TextField(verbose_name="Содержимое")
- host = models.ForeignKey(
- Site, on_delete=models.deletion.SET_DEFAULT, default=2, verbose_name="Хост"
- )
- def __str__(self):
- return self.content
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement