Gustavosdo/summum

View on GitHub
estagio/movimento/admin.py

Summary

Maintainability
A
2 hrs
Test Coverage
#-*- coding: UTF-8 -*-
from django.contrib import admin
from django.contrib.admin.views.main import IS_POPUP_VAR
from django.utils.translation import ugettext_lazy as _
from selectable_filter.filter import SelectableFilter
from import_export.admin import ExportMixin
from sorl.thumbnail.admin import AdminImageMixin
from salmonella.admin import SalmonellaMixin

from movimento.export import ProdutosResource
from app_global.admin import GlobalAdmin
from movimento.models import Marca, Categoria, Produtos
from movimento.forms import ProdutosForm


class MarcaAdmin(AdminImageMixin, admin.ModelAdmin):
    model = Marca
    fields = ('nome', 'logo', 'descricao')
    search_fields = ['nome',]


class CategoriaAdmin(admin.ModelAdmin):
    model = Categoria
    fields = ('nome', 'descricao')
    search_fields = ['nome',]


class ProdutosAdmin(ExportMixin, SalmonellaMixin, AdminImageMixin, GlobalAdmin):
    resource_class = ProdutosResource
    model = Produtos
    form = ProdutosForm
    filter_horizontal = ('categorias',)
    salmonella_fields = ('marca',)
    popup_list_display = ('nome', 'marca', 'quantidade', 'descricao')
    list_display = ('nome', 'quantidade', 'descricao', 'status')
    list_filter = (('categorias', SelectableFilter), ('marca', SelectableFilter), 'status')
    search_fields = ['nome',]
    readonly_fields = ('quantidade',)

    fieldsets = (
        (None, {
            'classes': ('suit-tab suit-tab-geral',),
            'fields': ('nome', 'preco', 'preco_venda', 'quantidade', 'status')
        }),
        (None, {
            'classes': ('suit-tab suit-tab-geral',),
            'fields': ('imagem',)
        }),
        (None, {
            'classes': ('suit-tab suit-tab-detalhes',),
            'fields': ('descricao', 'marca', 'categorias')
        }),
    )

    suit_form_tabs = (
        ('geral', _(u"Geral")),
        ('detalhes', _(u"Detalhes")),
    )

    def suit_row_attributes(self, obj, request):
        rowclass = ''
        if not obj.status:
            rowclass = 'error'

        return {'class': rowclass}


    def get_queryset(self, request):
        qs = super(ProdutosAdmin, self).get_queryset(request)
        if IS_POPUP_VAR in request.GET:  
            return qs.filter(status=True)
        return qs



admin.site.register(Produtos, ProdutosAdmin)
admin.site.register(Categoria, CategoriaAdmin)
admin.site.register(Marca, MarcaAdmin)