def quantity(self): model = get_model('shop', 'OrderDetail') quantity = model.objects.filter(order=self).aggregate( quantity=Sum('quantity'))['quantity'] if not quantity: quantity = 0 return quantity
class Meta: model = get_model('shop', 'ProductSection') exclude = ['catalog', 'sort'] widgets = {'parent': HiddenInput()} fieldsets = (('main', { 'fields': ( 'parent', 'name', 'description', ), 'legend': _('Main') }), ('seo', { 'fields': ( 'seo_keywords', 'seo_description', ), 'legend': _('SEO') }), ('advanced', { 'fields': ( 'image', 'is_visible', ), 'legend': _('Advanced') }))
class Meta: model = get_model('shop', 'Product') exclude = ['section'] fieldsets = (('main', { 'fields': ( 'slug', 'name', 'code', 'short_description', 'description', 'manufacturer', 'residue', 'price', ), 'legend': _('Main') }), ('seo', { 'fields': ( 'seo_keywords', 'seo_description', ), 'legend': _('SEO') }), ('advanced', { 'fields': ( 'labels', 'image', 'is_visible', ), 'legend': _('Advanced') }))
def sum_value(self): model = get_model('shop', 'OrderDetail') sum_value = model.objects.filter(order=self).aggregate(sum_value=Sum( F('price') * F('quantity'), output_field=models.DecimalField()))['sum_value'] if not sum_value: sum_value = 0 return sum_value
def get_data(self, context): PageModule = get_model('pages', 'PageModule') Page = get_model('pages', 'Page') try: module = PageModule.objects.get(pk=self.request.GET.get('selected_module')) except PageModule.DoesNotExist: module = None if module and module.related_model: model_path = module.related_model.split('.') app = model_path[0] model = model_path[1] try: RelatedModel = get_model(app, model) data = RelatedModel.objects.all() except (LookupError, ImportError): data = [] else: data = [] page_pk = self.request.GET.get('pk', 0) if page_pk != 0: page = Page.objects.get(pk=page_pk) else: page = None params = [] for item in data: if page is not None and page.module == module and str(page.module_params) == str(item.pk): params.append({'label': str(item), 'value': item.pk, 'selected': True}) else: params.append({'label': str(item), 'value': item.pk}) params = sorted(params, key=lambda k: k['label']) return { 'result': True, 'data': params }
def get_pages(self): target_id = self.request.GET.get('target') source_id = self.request.GET.get('source') if target_id and source_id: Page = get_model('pages', 'Page') target = Page.objects.get(pk=target_id) source = Page.objects.get(pk=source_id) return target, source raise Http404
def get_sections(self): target_id = self.request.GET.get('target') source_id = self.request.GET.get('source') if target_id and source_id: ProductSection = get_model('shop', 'ProductSection') target = ProductSection.objects.get( pk=target_id) if target_id != '0' else None source = ProductSection.objects.get(pk=source_id) return target, source raise Http404
def get_ads(context, place, limit): if not hasattr(context['request'], 'page') or context['request'].page is None: return {} section = context['request'].page.ad_section place = AdPlace.objects.get(slug=place) ad_model = get_model('ads', 'Ad') ads = ad_model.objects.filter( section=section, place=place, date_from__lt=datetime.now(), date_to__gt=datetime.now()).order_by('?')[0:limit] return {'object_list': ads}
class Meta: model = get_model('pages', 'Page') exclude = ['url', 'date_created', 'date_changed', 'sort'] widgets = {'module_params': forms.Select()} fieldsets = (('main', { 'fields': ( 'parent', 'slug', 'title', 'header', 'menu_name', 'menu_url', 'redirect_url', 'module', 'module_params', ), 'legend': _('Main') }), ('content', { 'fields': ( 'before_content', 'after_content', ), 'legend': _('Content') }), ('ads', { 'fields': ('ad_section', ), 'legend': _('Ads') }), ('seo', { 'fields': ( 'seo_keywords', 'seo_description', ), 'legend': _('SEO') }), ('advanced', { 'fields': ( 'security_type', 'user_groups', 'is_enabled', 'is_in_menu', ), 'legend': _('Advanced') }))
def dispatch(self, request, *args, **kwargs): self.module = get_current_module(request.path) if self.module and self.module.config: self.config = self.module.config model_label = self.config.get('model', self.model) if model_label: app_label, model_name = model_label.split('.') self.model = get_model(app_label, model_name) form_config = self.config.get('form') if form_config: if 'form_class' in form_config: app_label, form_class_name = form_config[ 'form_class'].split('.') self.form_class = get_form_class(app_label, form_class_name) form_fields = form_config.get('fields', '__all__') exclude_fields = form_config.get('exclude', []) else: form_fields = '__all__' exclude_fields = [] if self.form_class is None: self.form_class = modelform_factory(self.model, fields=form_fields, exclude=exclude_fields) if hasattr(self, 'grid_columns'): grid_config = self.config.get('grid') if grid_config: self.grid_columns = grid_config.get( 'grid_columns', self.grid_columns) search_config = grid_config.get('search') if search_config: self.search = search_config self.ordering = grid_config.get('ordering') self.model_properties = grid_config.get('model_properties') return super(AdminMixin, self).dispatch(request, *args, **kwargs)
class Meta: model = get_model('shop', 'ProductCatalog') exclude = [] fieldsets = (('main', { 'fields': ( 'slug', 'name', 'description', ), 'legend': _('Main') }), ('seo', { 'fields': ( 'seo_keywords', 'seo_description', ), 'legend': _('SEO') }), ('advanced', { 'fields': ( 'image', 'is_visible', ), 'legend': _('Advanced') }))
def setup_model(self): form_type = get_model( 'feedback', 'FormType').objects.get(pk=self.kwargs['form_type']) self.model = MESSAGES_MODELS_MAPPING.get(form_type.slug)
# coding: utf-8 from django.forms import modelform_factory from dartcms.utils.loading import get_model from dartcms.views import (DeleteObjectView, GridView, InsertObjectView, UpdateObjectView) MESSAGES_MODELS_MAPPING = { 'contact': get_model('feedback', 'ContactMessage'), 'question': get_model('feedback', 'QuestionMessage'), } class DynamicModelMixin(object): def setup_model(self): form_type = get_model( 'feedback', 'FormType').objects.get(pk=self.kwargs['form_type']) self.model = MESSAGES_MODELS_MAPPING.get(form_type.slug) def get_queryset(self): self.setup_model() return super(DynamicModelMixin, self).get_queryset() class FeedbackModelMixin(DynamicModelMixin): def get_form_class(self): self.setup_model() return modelform_factory(self.model, exclude=['type']) class MessagesGridView(DynamicModelMixin, GridView):
class Meta: model = get_model('shop', 'Order') exclude = ['user']
def check_object(self): Page = get_model('pages', 'Page') return Page.objects.get(pk=self.request.GET.get('source'))
class Meta: model = get_model('shop', 'OrderDetail') exclude = []
# -*- coding: utf-8 -*- from dartcms.utils.loading import get_model from django.contrib import admin PageModule = get_model('pages', 'PageModule') Page = get_model('pages', 'Page') class PageModuleAdmin(admin.ModelAdmin): pass admin.site.register(PageModule, PageModuleAdmin) class PageAdmin(admin.ModelAdmin): pass admin.site.register(Page, PageAdmin)
def set_homepage_security(apps, schema): Page = get_model('pages', 'Page') Page.objects.filter(module__slug='homepage').update( security_type='DEFAULT')
class Meta: model = get_model('feeds', 'FeedItem') exclude = ['feed', 'slug']
def get_user_model(): app_label, model_name = getattr(settings, 'AUTH_USER_MODEL', 'auth.User').split('.') return get_model(app_label, model_name)
# -*- coding: utf-8 -*- from django.conf.urls import url from dartcms.utils.config import DartCMSConfig from dartcms.utils.loading import get_model from dartcms.views import (DeleteObjectView, GridView, InsertObjectView, UpdateObjectView) from .forms import FeedItemForm FeedItem = get_model('feeds', 'FeedItem') config = DartCMSConfig({ 'model': FeedItem, 'parent_kwarg_name': 'feed', 'parent_model_fk': 'feed_id', 'grid': { 'grid_columns': [ { 'field': 'name', 'width': '60%' }, { 'field': 'is_visible', 'width': '20%' }, { 'field': 'date_published', 'width': '20%' }, ],
# -*- coding: utf-8 -*- from django.contrib import admin from dartcms.utils.loading import get_model AdPlace = get_model('ads', 'AdPlace') AdSection = get_model('ads', 'AdSection') class AdPlaceAdmin(admin.ModelAdmin): pass admin.site.register(AdPlace, AdPlaceAdmin) class AdSectionAdmin(admin.ModelAdmin): pass admin.site.register(AdSection, AdSectionAdmin)
# -*- coding: utf-8 -*- from dartcms.utils.config import DartCMSConfig from dartcms.utils.loading import get_model from django.forms import modelform_factory app_name = 'feeds' Feed = get_model('feeds', 'Feed') config = DartCMSConfig({ 'model': Feed, 'grid': { 'grid_columns': [ { 'field': 'type', 'width': '10%' }, { 'field': 'name', 'width': '90%' }, ], 'additional_grid_actions': [{ 'url': 'items', 'kwarg_name': 'feed', 'include_urls': 'dartcms.apps.feeds.items.urls' }] },
# -*- coding: utf-8 -*- from django.conf.urls import url from django.views.decorators.csrf import csrf_exempt from dartcms.utils.config import DartCMSConfig from dartcms.utils.loading import get_model from dartcms.views import GridView from .forms import PageForm from .views import (AppendPageView, DeletePageView, GetTreeView, InsertPageView, LoadModuleParamsView, MovePageView, UpdatePageView) Page = get_model('pages', 'Page') config = DartCMSConfig({ 'model': Page, 'grid': { 'grid_columns': [ { 'field': 'title', 'width': '60%' }, { 'field': 'url', 'width': '20%' }, { 'field': 'module', 'width': '20%' },
# coding: utf-8 from django import forms from django.utils.translation import ugettext_lazy as _ from form_utils.forms import BetterModelForm from dartcms.apps.users.models import UserGroup from dartcms.utils.loading import get_model PageModule = get_model('pages', 'PageModule') AdSection = get_model('ads', 'AdSection') class PageForm(BetterModelForm): class Meta: model = get_model('pages', 'Page') exclude = ['url', 'date_created', 'date_changed', 'sort'] widgets = { 'module_params': forms.Select() } fieldsets = ( ('main', {'fields': ( 'parent', 'slug', 'title', 'header', 'menu_name', 'menu_url', 'redirect_url', 'module', 'module_params',
# coding: utf-8 from django.db.models.signals import post_save, pre_delete, pre_save from dartcms.utils.loading import get_model, is_model_registered from .abstract_models import * from .signals import * __all__ = [ 'PageModule' ] if is_model_registered('pages', 'Page'): page_model = get_model('pages', 'Page') else: class Page(AbstractPage): pass __all__.append('Page') page_model = Page pre_save.connect(pre_save_handler, sender=page_model) post_save.connect(post_save_handler, sender=page_model) pre_delete.connect(pre_delete_handler, sender=page_model)