control admin
This commit is contained in:
parent
75b7a75993
commit
460aff770a
@ -1,3 +1,31 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from django.utils.html import format_html
|
||||||
|
from import_export.admin import ImportExportModelAdmin
|
||||||
|
|
||||||
# Register your models here.
|
from apps.orders.models import Product, ShoppingCar
|
||||||
|
|
||||||
|
@admin.register(Product)
|
||||||
|
class ProductAdmin(admin.ModelAdmin):
|
||||||
|
search_fields = ['name', 'description']
|
||||||
|
list_display = ('name', 'foto', 'price', 'is_active')
|
||||||
|
list_filter = ('is_active',)
|
||||||
|
fields = ('name', 'imagen', 'description', 'price', 'is_active')
|
||||||
|
|
||||||
|
def foto(self, obj):
|
||||||
|
if obj.imagen:
|
||||||
|
return format_html('<img style="width: 100px; height:auto;" src="{}" />'.format(obj.imagen.url))
|
||||||
|
return ""
|
||||||
|
|
||||||
|
@admin.register(ShoppingCar)
|
||||||
|
class ShoppingCarAdmin(admin.ModelAdmin):
|
||||||
|
search_fields = ['name', 'description']
|
||||||
|
list_display = ('item', 'foto', 'price')
|
||||||
|
fields = ('name', 'imagen', 'description', 'price')
|
||||||
|
|
||||||
|
def carrito(self, obj):
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def foto(self, obj):
|
||||||
|
if obj.item.imagen:
|
||||||
|
return format_html('<img style="width: 100px; height:auto;" src="{}" />'.format(obj.imagen.url))
|
||||||
|
return ""
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
from .product import Product
|
||||||
|
from .shopping_car import ShoppingCar
|
||||||
@ -1,16 +1,16 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from apps.users.models import CustomUser
|
from apps.users.models import CustomUser
|
||||||
|
from apps.orders.models import Product
|
||||||
|
|
||||||
class ShoppingCar(models.Model):
|
class ShoppingCar(models.Model):
|
||||||
user = models.ForeignKey(
|
user = models.ForeignKey(
|
||||||
CustomUser,
|
CustomUser,
|
||||||
on_delete = models.CASCADE,
|
on_delete = models.CASCADE,
|
||||||
blank=True, null=True
|
blank=True, null=True
|
||||||
)
|
)
|
||||||
name = models.ForeignKey(
|
item = models.ForeignKey(
|
||||||
CustomUser,
|
Product,
|
||||||
on_delete = models.CASCADE,
|
on_delete = models.CASCADE
|
||||||
blank=True, null=True
|
|
||||||
)
|
)
|
||||||
quantity = models.FloatField(default=1)
|
quantity = models.FloatField(default=1)
|
||||||
price = models.DecimalField(max_digits=10, decimal_places=2)
|
price = models.DecimalField(max_digits=10, decimal_places=2)
|
||||||
@ -21,6 +21,6 @@ class ShoppingCar(models.Model):
|
|||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = 'Producto'
|
verbose_name = 'Carro de Producto'
|
||||||
verbose_name_plural = 'Productos'
|
verbose_name_plural = 'Carro de Productos'
|
||||||
ordering = ['name']
|
ordering = ['-modified_at']
|
||||||
@ -1,3 +1,16 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from django.contrib.auth.admin import UserAdmin
|
||||||
|
from apps.users.models import CustomUser
|
||||||
|
|
||||||
# Register your models here.
|
@admin.register(CustomUser)
|
||||||
|
class CustomUserAdmin(UserAdmin):
|
||||||
|
list_display = ('email', 'groups', 'is_active',)
|
||||||
|
list_filter = ('groups', 'is_active',)
|
||||||
|
search_fields = ('email', 'first_name', 'last_name')
|
||||||
|
ordering = ('email',)
|
||||||
|
filter_horizontal = ()
|
||||||
|
fieldsets = (
|
||||||
|
(None, {'fields': ('email', 'password')}),
|
||||||
|
('Permissions', {'fields': ('is_active', 'groups')}),
|
||||||
|
('Important dates', {'fields': ('last_login',)}),
|
||||||
|
)
|
||||||
1
common/const_and_variables.py
Normal file
1
common/const_and_variables.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
BOOLEAN_VALIDS = ['True', 'true', True, 1, '1']
|
||||||
37
common/utils.py
Normal file
37
common/utils.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
def create_roles() -> None:
|
||||||
|
from django.contrib.auth.models import Group, Permission
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
from apps.users.models import CustomUser
|
||||||
|
from apps.orders.models import Product, ShoppingCar
|
||||||
|
|
||||||
|
# Crear grupos
|
||||||
|
superadmin_group, created = Group.objects.get_or_create(name='Super Administrador')
|
||||||
|
admin_group, created = Group.objects.get_or_create(name='Administrador')
|
||||||
|
client_group, created = Group.objects.get_or_create(name='Cliente')
|
||||||
|
|
||||||
|
# Obtener permisos
|
||||||
|
# Permisos para CustomUser
|
||||||
|
user_content_type = ContentType.objects.get_for_model(CustomUser)
|
||||||
|
user_permissions = Permission.objects.filter(content_type=user_content_type)
|
||||||
|
|
||||||
|
product_content_type = ContentType.objects.get_for_model(Product)
|
||||||
|
product_permissions = Permission.objects.filter(content_type=product_content_type)
|
||||||
|
|
||||||
|
shoppingcar_product_content_type = ContentType.objects.get_for_model(ShoppingCar)
|
||||||
|
shoppingcar_permissions = Permission.objects.filter(content_type=shoppingcar_content_type)
|
||||||
|
|
||||||
|
# Asignar permisos a Super Administrador
|
||||||
|
superadmin_content_type = ContentType.objects.get_for_models()
|
||||||
|
superadmin_group.permissions.set(Permission.objects.filter(content_type__in=superadmin_content_type))
|
||||||
|
|
||||||
|
# Asignar permisos a Administrador
|
||||||
|
admin_permissions = user_permissions.filter(codename__in=['add_customuser', 'change_customuser', 'view_customuser']) | \
|
||||||
|
useraddress_permissions.filter(codename__in=['add_useraddress', 'change_useraddress', 'view_useraddress']) | \
|
||||||
|
product_permissions.filter(codename__in=['add_product', 'change_product', 'view_product']) | \
|
||||||
|
shoppingcar_permissions.filter(codename__in=['view_shoppingcar'])
|
||||||
|
admin_group.permissions.set(admin_permissions)
|
||||||
|
|
||||||
|
# Asignar permisos a Cliente
|
||||||
|
client_permissions = user_permissions | useraddress_permissions | shoppingcar_permissions | \
|
||||||
|
product_permissions.filter(codename__in=['view_order'])
|
||||||
|
client_group.permissions.set(client_permissions)
|
||||||
Loading…
x
Reference in New Issue
Block a user