Esempio n. 1
0
class Request(models.Model):
    """Заявка на участие"""
    user = models.OneToOneField(User,
                                on_delete=models.CASCADE,
                                verbose_name='Пользователь на сайте',
                                blank=True,
                                null=True)
    name = models.CharField('ФИО', max_length=200)
    avatar = models.ImageField('Ваша фотография',
                               blank=True,
                               null=True,
                               upload_to=path_and_rename(
                                   "award_files/avatars/", 'avatar'))
    company = models.CharField('Компания', max_length=200)
    professional = models.CharField('Должность', max_length=100)
    email = models.EmailField('Email')
    phone = models.CharField('Телефон', max_length=30)
    nomination = models.ForeignKey(Nomination,
                                   on_delete=models.PROTECT,
                                   verbose_name='Номинация')
    project_name = models.CharField('Название проекта', max_length=300)
    project_start_date = models.DateField('Дата внедрения проекта',
                                          default=timezone.now)
    project_appoints = RichTextUploadingField('Преимущества проекта',
                                              null=True)
    description = RichTextUploadingField('Описание проекта', null=True)
    results = RichTextUploadingField(
        'Результаты, полученные после внедрения проекта', null=True)
    resume = models.FileField('Резюме заявителя',
                              upload_to=path_and_rename(
                                  "award_files/resume/", 'resume'))
    video = models.TextField('Youtube ролик с видеопрезентацией проекта')
    presentation = models.FileField('Презентация проекта (форматы pptx/pdf)',
                                    upload_to=path_and_rename(
                                        "award_files/presentations/",
                                        'presentation'))
    jurys_nomination = models.ManyToManyField(
        NominationJury, verbose_name='Рекомендовать к номинации', blank=True)
    vote = models.ManyToManyField(Vote, verbose_name='Голос', blank=True)
    jury_approved = models.ManyToManyField(JuryApproved,
                                           verbose_name='Мнения жюри',
                                           blank=True)
    pub_date = models.DateTimeField('Дата подачи заявки', auto_now_add=True)
    to_edit_notification = models.TextField('Уведомление для участника',
                                            blank=True)
    for_jury_notification = models.TextField('Уведомление для жюри',
                                             blank=True)
    public_for_jury = models.BooleanField('На рассмотрение жюри',
                                          default=False)
    public = models.BooleanField('Опубликовать', default=False)

    def get_absolute_url(self):
        return reverse('request_detail', kwargs={'pk': self.id})

    def __str__(self):
        return self.project_name

    class Meta:
        verbose_name = 'Заявка на премию'
        verbose_name_plural = 'Заявки на премию'
Esempio n. 2
0
class ForumParticipant(models.Model):
    """Участник форума"""
    table = models.PositiveSmallIntegerField('Номер стола')
    speaking_time = models.CharField('Время выступления', max_length=255)
    name = models.CharField('Имя участника', max_length=255)
    bio = RichTextUploadingField('Био', blank=True)
    company_logo = models.ImageField('Логотип компании', upload_to=path_and_rename("forum/", 'image'), null=True)
    avatar = models.ImageField('Фотография', upload_to=path_and_rename("forum/", 'image'))
    presentation = models.FileField('Презентация', upload_to=path_and_rename("forum/", 'presentation'))

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'Спикер'
        verbose_name_plural = 'Спикеры 2019'
Esempio n. 3
0
class Publication(models.Model):
    """Публикация"""
    category = models.ForeignKey(Category,
                                 on_delete=models.SET_NULL,
                                 null=True,
                                 blank=True,
                                 verbose_name='Категория',
                                 related_name='publications')
    author = models.ForeignKey(Author,
                               on_delete=models.SET_NULL,
                               null=True,
                               blank=True,
                               verbose_name='Автор',
                               related_name='authors')
    title = models.CharField('Заголовок', max_length=255, db_index=True)
    image = models.ImageField('Изображение',
                              upload_to=path_and_rename(
                                  'publications/', 'image'))
    body = RichTextUploadingField('Публикация')
    public = models.BooleanField('Опубликовать', default=False)
    pub_date = models.DateTimeField('Дата публикации', auto_now_add=True)
    update = models.DateTimeField('Дата обновления', auto_now=True)
    views = models.PositiveSmallIntegerField('Кол-во просмотров', default=0)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('publication_detail', kwargs={'pk': self.id})

    class Meta:
        ordering = ('-pub_date', )
        verbose_name = 'Публикация'
        verbose_name_plural = 'Публикации'
Esempio n. 4
0
class Profile(models.Model):
    """Расширение пользователя"""
    user = models.OneToOneField(User,
                                on_delete=models.CASCADE,
                                default=User,
                                verbose_name='Пользователь')
    jury = models.BooleanField('Статус жюри', default=False)
    partisipant = models.BooleanField('Статус участника', default=False)
    avatar = models.ImageField('Аватар (только для жюри)',
                               null=True,
                               upload_to=path_and_rename(
                                   "award_files/avatars/", 'jury'),
                               blank=True)
    professional = models.CharField('Профессия (только для жюри)',
                                    max_length=200,
                                    null=True,
                                    blank=True)
    preview = RichTextUploadingField('Краткая информация(только для жюри)',
                                     null=True,
                                     blank=True)
    interview = models.TextField('Ссылка на интервью (только для жюри)',
                                 null=True,
                                 blank=True)

    def __str__(self):
        return self.user.first_name

    class Meta:
        verbose_name = 'Профиль'
        verbose_name_plural = 'Профили'
Esempio n. 5
0
class AwardInfo(models.Model):
    """Информация о премии"""
    award_title = models.CharField('Блок премия - заголовок', max_length=200)
    award_description = RichTextUploadingField('Блок премия - описание')
    award_image = models.ImageField(
        'Блок премия - картинка',
        upload_to=path_and_rename("site/", 'image'),
        help_text=
        'не забудьте оптимизировать картинку на сайте https://tinypng.com/')

    jury_title = models.CharField('Блок жюри - заголовок', max_length=200)
    jury_description = RichTextUploadingField('Блок жюри - описание')
    involvement_title = models.CharField('Блок участие - заголовок',
                                         max_length=200)
    involvement_description = RichTextUploadingField('Блок участие - описание')
    votes_description = RichTextUploadingField(
        'Блок голосование - описание (заголовок 3 уровня)',
        blank=True,
        null=True)
    votes_description_second = RichTextUploadingField(
        'Блок голосование 2 - описание (заголовок 3 уровня)',
        blank=True,
        null=True)

    def __str__(self):
        return self.award_title

    class Meta:
        verbose_name = 'Премия общая информация'
        verbose_name_plural = 'Премия общая информация'
Esempio n. 6
0
class Facilitator2020(models.Model):
    """Фасилитаторы 2020 """
    table = models.PositiveSmallIntegerField('Номер стола')
    name = models.CharField('Имя фасилитатора', max_length=255)
    bio = RichTextUploadingField('Био', blank=True)
    company = models.CharField('Компания', max_length=255)
    company_logo = models.ImageField('Логотип компании', upload_to=path_and_rename("forum/", 'image'), null=True)
    avatar = models.ImageField('Фотография', upload_to=path_and_rename("forum/", 'image'))
    special_quest = models.BooleanField('Специальный гость', default=False)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'Фасилитатор'
        verbose_name_plural = 'Фасилитаторы 2020'
Esempio n. 7
0
class ForumInfo(models.Model):
    """Общая информация о форуме"""
    title = models.CharField('Заголовок страницы форума', max_length=255)
    sub_title = models.CharField('Подзаголовок страницы форума', max_length=255)
    image = models.ImageField('Картинка', upload_to=path_and_rename("forum/", 'image'),
                              help_text='Не забудьте оптимизировать на сайте https://tinypng.com/', null=True)
    forum_description_title = models.CharField('Заголовок блока с описанием', max_length=255)
    forum_description = RichTextUploadingField('Описание форума')
    info_blocks = models.ManyToManyField(InfoBlock, verbose_name='Блоки с информацией',)
    forum_2020_text = RichTextUploadingField('Текст (заглушка для форума 202)', blank=True)
    forum_2020 = models.ImageField('Заглушка для форума 2020', upload_to=path_and_rename("forum/", 'image'), null=True)

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'Информация о форуме'
        verbose_name_plural = 'Информация о форуме'
Esempio n. 8
0
class SubService(models.Model):
    """Раздел услуги"""
    title = models.CharField('Заголовок', max_length=255)
    description = RichTextUploadingField('Описание услуги')
    image = models.ImageField('Картинка услуги (необязательно)', upload_to=path_and_rename("service/", 'image'), blank=True, null=True)
    form = models.BooleanField('Форма заявки', default=False)
    form_resume = models.BooleanField('Форма с резюме', default=False)
    program = models.FileField('Программа (файл PDF)', upload_to=path_and_rename("service/", 'image'), null=True, blank=True)
    presentation_text = models.TextField('Текст, предлагающий скачать программу или презентацию', default='Ознакомиться с программой')
    btn_text = models.CharField('Текст на кнопке скачивания программы', default='Скачать', max_length=255)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('subservice_detail', kwargs={'pk': self.id})

    class Meta:
        verbose_name = 'Дополнительно - услуга'
        verbose_name_plural = 'Дополнительно - услуги'
Esempio n. 9
0
class Author(models.Model):
    """Автор"""
    user = models.OneToOneField(User,
                                on_delete=models.CASCADE,
                                verbose_name='Пользователь')
    first_name = models.CharField('Имя автора',
                                  max_length=255,
                                  default='User',
                                  blank=True,
                                  null=True)
    last_name = models.CharField('Фамилия автора',
                                 max_length=255,
                                 blank=True,
                                 null=True)
    professional = models.CharField('Профессия',
                                    max_length=255,
                                    null=True,
                                    blank=True)
    company = models.CharField('Компания',
                               max_length=255,
                               null=True,
                               blank=True)
    avatar = models.ImageField('Аватар (в формате 1:1)',
                               upload_to=path_and_rename('authors/', 'avatar'),
                               blank=True,
                               null=True)
    background = models.ImageField('Фоновое изображение профиля',
                                   upload_to=path_and_rename('authors/', 'bg'),
                                   blank=True,
                                   null=True)
    bio = models.TextField('Bio', blank=True, null=True)

    def get_absolute_url(self):
        return reverse('profile', kwargs={'pk': self.id})

    def __str__(self):
        return f'{self.first_name} {self.last_name}'

    class Meta:
        verbose_name = 'Автор'
        verbose_name_plural = 'Авторы'
Esempio n. 10
0
class ServiceInfo(models.Model):
    """Общая информация"""
    title = models.CharField('Заголовок страницы со списком услуг', max_length=255, blank=True, null=True)
    text = RichTextUploadingField('Дополнительная информация на странице со списком услуг', blank=True, null=True)
    image = models.ImageField('Картинка на странице услуг', upload_to=path_and_rename("service/", 'image'), null=True, blank=True)

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'Услуги - общая информация'
        verbose_name_plural = 'Услуги - общая информация'
Esempio n. 11
0
class ForumPartner(models.Model):
    """Партнеры форума"""
    name = models.CharField('Название компании', max_length=255)
    image = models.ImageField('Логотип', upload_to=path_and_rename("forum/", 'image'))
    url = models.URLField('Ссылка на сайт', blank=True, null=True)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'Партнер форума'
        verbose_name_plural = 'Партнеры форума'
Esempio n. 12
0
class InfoBlock(models.Model):
    """Блоки с информацией"""
    order = models.PositiveSmallIntegerField('Порядковый номер', null=True)
    image = models.ImageField('Картинка', upload_to=path_and_rename("forum/", 'image'), help_text='https://undraw.co/')
    title = models.CharField('Заголовок блока', max_length=255)
    description = models.TextField('Описание блока')

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'Блок с описанием'
        verbose_name_plural = 'Блоки с описанием'
Esempio n. 13
0
class ImageBlock(models.Model):
    """Блоки с картинками"""
    image = models.ImageField('Картинка',
                              upload_to=path_and_rename("about/", 'image'))
    title = models.CharField('Заголовок', max_length=255)
    text = models.TextField('Текст')

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'Блок с картинкой на странице о компании'
        verbose_name_plural = 'Блоки с картинкой на странице о компании'
Esempio n. 14
0
class AboutUsInfo(models.Model):
    """Инофрмация о компании"""
    title = models.CharField('Заголовок страницы', max_length=255)
    text = RichTextUploadingField('Текст о компании')
    image = models.ImageField('Фото руководителя',
                              upload_to=path_and_rename("about/", 'image'))
    photo_text = RichTextUploadingField('Текст под фото руководителя')

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'Информация о компании'
        verbose_name_plural = 'Информация о компании'
Esempio n. 15
0
class MainInfo(models.Model):
    """Основная информация"""
    title = models.CharField('Title сайта', max_length=255)
    description = models.TextField('Description',
                                   max_length=180,
                                   help_text='до 180 символово')
    favicon = models.ImageField('Иконка сайта',
                                upload_to=path_and_rename('main/', 'favicon'))

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'Заголовок, описание и иконка'
        verbose_name_plural = 'Заголовок, описание и иконка'
Esempio n. 16
0
class Service(models.Model):
    """Услуга"""
    number = models.PositiveSmallIntegerField('Номер', null=True, blank=True)
    image = models.ImageField('Картинка услуги (необязательно)', upload_to=path_and_rename("service/", 'image'), blank=True, null=True)
    title = models.CharField('Заголовок - название услуги', max_length=255)
    description = RichTextUploadingField('Описание услуги')
    sub_service = models.ManyToManyField(SubService, verbose_name='Дополнительные услуги')

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('service_detail', kwargs={'pk': self.id})

    class Meta:
        verbose_name = 'Услуга'
        verbose_name_plural = 'Услуги'
Esempio n. 17
0
class ServiceContactResume(models.Model):
    """Заявка резюме"""
    name = models.CharField('ФИО', max_length=255)
    email = models.EmailField('Email')
    phone = models.CharField('Телефон', max_length=30)
    profile = models.ForeignKey(Profile, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='Профиль')
    sphere = models.ForeignKey(Sphere, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='Сфера')
    experience = models.ForeignKey(Experience, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='Опыт работы')
    self_request = models.ForeignKey(SelfRequest, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='Запрос')
    resume = models.FileField('Файл', upload_to=path_and_rename("service_files/", 'resume'))

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'Резюме'
        verbose_name_plural = 'Резюме'
Esempio n. 18
0
class Person(models.Model):
    """Персона"""
    name = models.CharField('ФИО', max_length=255, db_index=True)
    position = models.CharField('Должность', max_length=255)
    company = models.CharField('Компания', max_length=255)
    image = models.ImageField('Изображение', upload_to=path_and_rename('persons/', 'image'), blank=True,
                              null=True)
    body = RichTextUploadingField('Био')
    slug = models.SlugField('Slug', unique=True, help_text='маленькими буквами, без пробелов и спецсимволов')
    order = models.PositiveSmallIntegerField('Порядковые номер')

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('person_detail', kwargs={'slug': self.slug})

    class Meta:
        ordering = ('order',)
        verbose_name = 'Персона'
        verbose_name_plural = 'Персоны'