Пример #1
0
class CourseAdmin(ImageCroppingMixin, ModelTranlsationFieldsetsMixin,
                  BaseArticleAdmin):
    """Курсы"""
    date_hierarchy = 'date_start'
    group_fieldsets = True
    filter_horizontal = ('categories', )
    inlines = (CourseAboutBlockInline, CourseTeacherInline,
               CourseScheduleInline)
    list_display = ('id', 'image_thumb', 'title', 'date_start', 'date_finish',
                    'ordering', 'status', 'updated')
    list_editable = ('status', 'ordering')
    list_filter = BaseArticleAdmin.list_filter + ('city', 'categories')
    ordering = ('-date_start', '-date_finish', 'ordering')
    save_as = True
    search_fields = ['=id', 'slug', 'image'] + get_model_translation_fields(
        models.Course)
    suit_form_tabs = (('general', _('Основное')), ('about', _('О курсе')),
                      ('detail', _('Подробная информация')),
                      ('teachers', _('Преподаватели курса')),
                      ('schedule', _('Расписание')))
    tabs_mapping = {
        '': 'general',
        'О курсе': 'about',
        'Подробная информация': 'detail',
        'Расписание': 'schedule'
    }

    class Media:
        js = ('admin/js/translit.js', )

    def get_fieldsets(self, request, obj=None):
        fieldsets = super(CourseAdmin, self).get_fieldsets(request, obj=obj)
        fieldsets[0][1]['fields'].append('categories')
        return fieldsets
Пример #2
0
class ProductCategoryAdmin(ModelTranlsationFieldsetsMixin, BaseModelAdmin,
                           TranslationAdmin, MPTTModelAdmin):
    """Категории продуктов"""
    group_fieldsets = True
    list_display = ('title', 'id', 'ordering', 'status', 'updated')
    list_display_links = ('title', 'id')
    list_editable = ('status', 'ordering')
    list_filter = BaseModelAdmin.list_filter + ('parent', 'level')
    ordering = BaseModelAdmin.ordering + ('title', )
    search_fields = ['=id', 'slug'] + get_model_translation_fields(
        models.ProductCategory)
    suit_form_tabs = (('general', _('Основное')),
                      ('body', _('Основной контент')), ('seo', _('SEO-блок')))
    tabs_mapping = {
        '': 'general',
        'Контент': 'body',
        'Заголовок seo-блока': 'seo',
        'Контент seo-блока': 'seo',
        'Изображение в seo-блоке': 'seo'
    }

    class Media:
        js = ('admin/js/translit.js', )

    def get_fieldsets(self, request, obj=None):
        fieldsets = super(ProductCategoryAdmin, self).get_fieldsets(request,
                                                                    obj=obj)

        return fieldsets
Пример #3
0
class SupportQuestionAdmin(BaseModelAdmin, TranslationAdmin):
    """Категории продуктов"""
    fields = models.SupportQuestion().collect_fields() + ['sections']
    filter_horizontal = ('sections',)
    list_display = ('id', 'title', 'ordering', 'get_sections', 'status', 'updated')
    list_display_links = ('id', 'title')
    list_filter = BaseModelAdmin.list_filter + ('sections',)
    ordering = BaseModelAdmin.ordering + ('title',)
    search_fields = ['=id'] + get_model_translation_fields(models.SupportQuestion)

    def get_queryset(self, request):
        qs = super(SupportQuestionAdmin, self).get_queryset(request)
        qs = qs.prefetch_related(
            Prefetch(
                'sections', queryset=models.SupportSection.objects.published(),
                to_attr='sections_cache'
            )
        )
        return qs

    def get_sections(self, obj):
        return '<br/>'.join(x.title for x in obj.sections_cache)

    get_sections.allow_tags = True
    get_sections.short_description = _('Разделы')

    class Media:
        js = ('admin/js/translit.js',)
Пример #4
0
class FeatureAdmin(BaseModelAdmin, TranslationAdmin):
    """Характеристики"""
    fields = models.Feature().collect_fields()
    list_display = ('id', 'title', 'ordering', 'status', 'updated')
    list_display_links = ('id', 'title')
    ordering = BaseModelAdmin.ordering + ('title', )
    search_fields = ['=id'] + get_model_translation_fields(models.Feature)
Пример #5
0
class TeacherAdmin(ImageCroppingMixin, BaseModelAdmin, TranslationAdmin):
    """Преподаватели"""
    fields = models.Teacher().collect_fields()
    list_display = ('id', 'image_thumb', 'title', 'ordering', 'status',
                    'updated')
    list_display_links = ('id', 'image_thumb', 'title')
    ordering = BaseModelAdmin.ordering + ('title', )
    search_fields = ['=id'] + get_model_translation_fields(models.Teacher)
Пример #6
0
class HomeSlideAdmin(BaseModelAdmin, TranslationAdmin):
    """Слайды на главной"""
    group_fieldsets = True
    list_display = ('id', 'image_thumb', 'title', 'ordering', 'status', 'updated')
    list_display_links = ('id', 'image_thumb', 'title')
    ordering = BaseModelAdmin.ordering + ('title',)
    save_as = True
    search_fields = ['=id'] + get_model_translation_fields(models.HomeSlide)
Пример #7
0
class HomeAdvantageAdmin(BaseModelAdmin, TranslationAdmin):
    """Преимущества на главной странице"""
    group_fieldsets = True
    list_display = ('id', 'title', 'icon', 'ordering', 'status', 'updated')
    list_display_links = ('id', 'title')
    ordering = BaseModelAdmin.ordering + ('title',)
    save_as = True
    search_fields = ['=id', 'icon'] + get_model_translation_fields(models.HomeAdvantage)
Пример #8
0
class CityAdmin(BaseModelAdmin, SuperUserDeletableAdminMixin,
                TranslationAdmin):
    """Города"""
    fields = models.City().collect_fields()
    list_display = ('id', 'title', 'status', 'ordering', 'updated')
    list_display_links = ('id', 'title')
    ordering = ('ordering', 'title')
    search_fields = ['=id'] + get_model_translation_fields(models.City)
Пример #9
0
class DbConfigAdmin(SuperUserDeletableAdminMixin, BaseModelAdmin,
                    TranslationAdmin):
    """Переменные шаблонов"""
    fields = models.DbConfig().collect_fields()
    list_display = ('key', 'verbose_title', 'status', 'created')
    list_editable = ('status', )
    ordering = ('key', )
    search_fields = ['=id', 'key', 'verbose_title'
                     ] + get_model_translation_fields(models.DbConfig)
Пример #10
0
class HomeCatalogAdmin(BaseModelAdmin, TranslationAdmin):
    """Каталоги на главной странице"""
    group_fieldsets = True
    inlines = (HomeCatalogProductInline, HomeCatalogManufacturerInline)
    list_display = ('id', 'title', 'ordering', 'status', 'updated')
    list_display_links = ('id', 'title')
    ordering = BaseModelAdmin.ordering + ('title',)
    save_as = True
    search_fields = ['=id'] + get_model_translation_fields(models.HomeCatalog)
Пример #11
0
class MenuAdmin(SuperUserDeletableAdminMixin, BaseModelAdmin):
    """Меню"""
    fields = models.Menu().collect_fields()
    inlines = (MenuItemInline, )
    list_display = ('slug', 'title', 'status', 'created')
    list_editable = ('status', )
    ordering = BaseModelAdmin.ordering + ('slug', )
    search_fields = ['=id', 'slug', 'title'] + \
        ['items__%s' % x for x in get_model_translation_fields(models.MenuItem)]
Пример #12
0
class ProfessionalAreaAdmin(BaseModelAdmin, SuperUserDeletableAdminMixin,
                            TranslationAdmin):
    """Направления деятельности"""
    fields = models.ProfessionalArea().collect_fields()
    list_display = ('id', 'title', 'status', 'ordering', 'updated')
    list_display_links = ('id', 'title')
    ordering = ('ordering', 'title')
    search_fields = ['=id'] + get_model_translation_fields(
        models.ProfessionalArea)
Пример #13
0
class PartnerAdmin(BaseModelAdmin, TranslationAdmin):
    """Дилеры"""
    group_fieldsets = True
    fields = models.Partner().collect_fields() + ['professional_areas']
    filter_horizontal = ('professional_areas', )
    list_display = ('id', 'title', 'city', 'status', 'ordering', 'updated')
    list_display_links = ('id', 'title')
    list_filter = BaseModelAdmin.list_filter + ('city', 'professional_areas')
    ordering = ('ordering', 'title')
    search_fields = ['=id'] + get_model_translation_fields(models.Partner)
Пример #14
0
class ArticleCategoryAdmin(BaseModelAdmin):
    """Категории статей базы знаний"""
    fields = models.ArticleCategory().collect_fields()
    list_display = ('id', 'title', 'ordering', 'status', 'updated')
    list_display_links = ('id', 'title')
    ordering = BaseModelAdmin.ordering + ('title',)
    search_fields = ['=id', 'slug'] + get_model_translation_fields(models.ArticleCategory)

    class Media:
        js = ('admin/js/translit.js',)
Пример #15
0
class PageAdmin(BaseModelAdmin, TranslationAdmin):
    """Простые страницы"""
    fields = models.Page().collect_fields()
    list_display = ('id', 'title', 'slug', 'ordering', 'status', 'updated')
    list_display_links = ('id', 'title')
    ordering = BaseModelAdmin.ordering + ('title',)
    search_fields = ['=id', 'slug'] + get_model_translation_fields(models.Page)

    class Media:
        js = ('admin/js/translit.js',)
Пример #16
0
class SupportCategoryAdmin(BaseModelAdmin, TranslationAdmin):
    """Категории тех. поддержки"""
    fields = models.SupportCategory().collect_fields()
    list_display = ('id', 'title', 'ordering', 'status', 'updated')
    list_display_links = ('id', 'title')
    ordering = BaseModelAdmin.ordering + ('title',)
    search_fields = ['=id', 'slug'] + get_model_translation_fields(models.SupportCategory)

    class Media:
        js = ('admin/js/translit.js',)
Пример #17
0
class MenuItemAdmin(SuperUserDeletableAdminMixin, BaseModelAdmin,
                    TranslationAdmin):
    """Пункты меню"""
    fields = models.MenuItem().collect_fields()
    list_display = ('id', 'title', 'parent_item', 'menu', 'status', 'ordering',
                    'created')
    list_display_links = ('id', 'title')
    list_filter = BaseModelAdmin.list_filter + ('menu', )
    ordering = BaseModelAdmin.ordering
    raw_id_fields = ('parent_item', )
    search_fields = ['=id'] + get_model_translation_fields(models.MenuItem)
Пример #18
0
class GalleryAdmin(BaseModelAdmin, TranslationAdmin):
    """Галереи"""
    fields = models.Gallery().collect_fields()
    inlines = (GalleryPhotoInline,)
    list_display = ('image_thumb', 'title', 'ordering', 'status', 'updated')
    list_display_links = ('image_thumb', 'title')
    ordering = BaseModelAdmin.ordering + ('title',)
    search_fields = ['=id'] + get_model_translation_fields(models.Gallery)

    class Media:
        js = ('admin/js/translit.js',)
Пример #19
0
class ManufacturerAdmin(BaseModelAdmin, TranslationAdmin):
    """Производители"""
    fields = models.Manufacturer().collect_fields()
    list_display = ('id', 'image_thumb', 'title', 'ordering', 'status',
                    'updated')
    list_display_links = ('id', 'image_thumb', 'title')
    ordering = BaseModelAdmin.ordering + ('title', )
    search_fields = ['=id', 'slug', 'image'] + get_model_translation_fields(
        models.Manufacturer)

    class Media:
        js = ('admin/js/translit.js', )
Пример #20
0
class SupportSectionAdmin(BaseModelAdmin, TranslationAdmin):
    """Категории продуктов"""
    filter_horizontal = ('categories',)
    group_fieldsets = True
    list_display = ('id', 'title', 'ordering', 'status', 'updated')
    list_display_links = ('id', 'title')
    list_filter = BaseModelAdmin.list_filter + ('categories',)
    ordering = BaseModelAdmin.ordering + ('title',)
    search_fields = ['=id'] + get_model_translation_fields(models.SupportSection)

    def get_fieldsets(self, request, obj=None):
        fieldsets = super(SupportSectionAdmin, self).get_fieldsets(request, obj=obj)
        fieldsets[0][1]['fields'].append('categories')
        return fieldsets
Пример #21
0
class BaseArticleAdmin(BaseModelAdmin, TranslationAdmin):
    """Базовая админ.часть для новостей и событий"""
    date_hierarchy = 'publish_date'
    group_fieldsets = True
    list_display = ('id', 'image_thumb', 'title', 'publish_date', 'ordering',
                    'status', 'updated')
    list_display_links = ('id', 'image_thumb', 'title')
    list_editable = ('status', 'ordering', 'publish_date')
    ordering = ('ordering', '-publish_date')
    search_fields = ['=id', 'slug', 'image'] + get_model_translation_fields(
        models.BaseArticle)
    suit_form_tabs = (('general', _('Основное')),
                      ('body', _('Основной контент')), ('sections',
                                                        _('Секции')))
    tabs_mapping = {'': 'general', 'Контент': 'body', 'Анонс': 'body'}

    class Media:
        js = ('admin/js/translit.js', )
Пример #22
0
class ProductAdmin(ModelTranlsationFieldsetsMixin, ImageCroppingMixin,
                   BaseModelAdmin, TranslationAdmin):
    """Продукты"""
    filter_horizontal = ('categories', )
    form = forms.ProductModelForm
    group_fieldsets = True
    inlines = (ProductImageMainInline, ProductFeatureMainInline,
               ProductFeatureInline, ProductDocumentInline,
               ProductRelatedInline)
    list_display = ('id', 'image_thumb', 'title', 'ordering', 'status',
                    'updated')
    list_display_links = ('id', 'image_thumb', 'title')
    list_filter = BaseModelAdmin.list_filter + ('categories', 'manufacturer')
    ordering = BaseModelAdmin.ordering + ('title', )
    save_as = True
    search_fields = ['=id', 'slug', 'image'] + get_model_translation_fields(
        models.Product)
    suit_form_tabs = (('general', _('Основное')), ('body',
                                                   _('Основной контент')),
                      ('images', _('Изображения')), ('features',
                                                     _('Характеристики')),
                      ('training', _('Обучение')), ('testing',
                                                    _('Тестирование')),
                      ('docs', _('Документация')), ('related',
                                                    _('Связанные продукты')))
    tabs_mapping = {
        '': 'general',
        'Основной контент': 'body',
        'Короткое описание': 'body',
        'Контент вкладки "характеристики"': 'features',
        'Контент вкладки "обучение"': 'training',
        'Контент вкладки "тестирование"': 'testing',
        'Контент вкладки "документация"': 'docs'
    }

    class Media:
        js = ('admin/js/translit.js', )

    def get_fieldsets(self, request, obj=None):
        fieldsets = super(ProductAdmin, self).get_fieldsets(request, obj=obj)

        fieldsets[0][1]['fields'].append('categories')
        return fieldsets
Пример #23
0
class SEOPageAdmin(BaseModelAdmin, TranslationAdmin):
    """SEO-параметры страниц"""
    group_fieldsets = True
    list_display = ('url', 'seo_title', 'ordering', 'status', 'created')
    ordering = ('url', )
    search_fields = ['url'] + get_model_translation_fields(models.SEOPage)