Beispiel #1
0
 def get_by_path(self, path):
     path_patterns = path.split('/')
     slug = path_patterns[-1]
     try:
         return self.get(slug=slug)
     except ObjectDoesNotExist:
         raise load_class(settings.CATEGORY_MODEL).DoesNotExist
Beispiel #2
0
 def price_total(self):
     items = load_class(settings.ORDER_PRODUCTS_MODEL).objects.filter(
                                                                 order=self)
     return sum(item.quantity * item.product.price for item in items)
Beispiel #3
0
    prepopulated_fields = {"slug": ("name",)}
    list_display = (
        "name",
        "slug",
        "price",
        #'category',
    )
    list_filter = ("category",)

    def changelist_view(self, request, extra_context=None):
        context = {}
        return super(BaseProductAdmin, self).changelist_view(request, extra_context=context)


if is_default_model("PRODUCT"):
    admin.site.register(load_class(settings.PRODUCT_MODEL), BaseProductAdmin)


class BaseCategoryAdmin(MPTTModelAdmin):
    change_list_template = "admin/category/change_list.html"
    mptt_level_indent = 20
    prepopulated_fields = {"slug": ("name",)}
    list_display = ("name", "get_products", "slug")

    def get_products(self, instance):
        return "<br/>".join(p.name for p in instance.products.all())

    get_products.allow_tags = True
    get_products.short_description = _("products")

Beispiel #4
0
from django import forms
from django.utils.translation import ugettext as _
from django.contrib.auth.models import User

from plugshop import settings
from plugshop.utils import load_class

PRODUCT_CLASS = load_class(settings.PRODUCT_MODEL)
ORDER_CLASS = load_class(settings.ORDER_MODEL)
ORDER_PRODUCTS_CLASS = load_class(settings.ORDER_PRODUCTS_MODEL)
NAME_ERROR = _('Name is required')
EMAIL_ERROR = _('Invalid email address')
EMAIL_ERROR_EXISTS = _("Email address '%s' already exits, must be unique")

class ProductForm(forms.Form):
    product = forms.ModelChoiceField(queryset=PRODUCT_CLASS.objects)
    quantity = forms.IntegerField(required=False)

class OrderForm(forms.ModelForm):

    class Meta:
        model = ORDER_CLASS
        exclude = (
            'number', 
            'status',
            'created_at',
            'updated_at',
            'delivered_at',
            'user',
            'products',
        )
Beispiel #5
0
from django.utils import simplejson as json
from django.contrib import messages
from django.template.loader import render_to_string
from django.core.mail import EmailMessage, mail_managers

from plugshop import settings
from plugshop.utils import load_class, get_model
from plugshop.forms import *
from plugshop.cart import get_cart

PRODUCT_CLASS = get_model(settings.PRODUCT_MODEL)
CATEGORY_CLASS = get_model(settings.CATEGORY_MODEL)
ORDER_CLASS = get_model(settings.ORDER_MODEL)
ORDER_PRODUCTS_CLASS = get_model(settings.ORDER_PRODUCTS_MODEL)

ORDER_FORM_CLASS = load_class(settings.ORDER_FORM)


class ProductListView(ListView):
    context_object_name = 'products'
    template_name = 'plugshop/product_list.html'
    model = PRODUCT_CLASS

    def get_context_data(self, **kwargs):
        context = super(ProductListView, self).get_context_data(**kwargs)
        context['categories'] = CATEGORY_CLASS.objects.all()
        return context


class ProductView(DetailView):
    model = PRODUCT_CLASS
Beispiel #6
0
from django.utils import simplejson as json
from django.contrib.auth.models import User
from django.contrib import messages

from django.utils.html import strip_tags
from django.template.loader import render_to_string
from django.core.mail import EmailMessage, mail_managers, \
mail_admins

from plugshop.utils import serialize_queryset
from plugshop import settings
from plugshop.utils import load_class, serialize_model, serialize_queryset
from plugshop.forms import *
from plugshop.cart import get_cart

PRODUCT_CLASS = load_class(settings.PRODUCT_MODEL)
CATEGORY_CLASS = load_class(settings.CATEGORY_MODEL)
ORDER_CLASS = load_class(settings.ORDER_MODEL)
ORDER_PRODUCTS_CLASS = load_class(settings.ORDER_PRODUCTS_MODEL)

ORDER_FORM_CLASS = load_class(settings.ORDER_FORM)

class ProductListView(ListView):
    context_object_name = 'products'
    template_name = 'plugshop/product_list.html'
    model = PRODUCT_CLASS

    def get_context_data(self, **kwargs):
        context = super(ProductListView, self).get_context_data(**kwargs)
        categories = CATEGORY_CLASS.objects.all()
        context.update(