def generate_list_view(self): """Generate class based view for ListView""" name = model_class_form(self.model + 'ListView') list_args = dict( model=self.get_model_class, context_object_name=plural(self.model), template_name=self.get_template('list'), table_class=self.get_actual_table(), context_table_name='table_objects', crud=self.crud, permissions=self.view_permission('list'), permission_required=self.check_permission_required, login_required=self.check_login_required, table_pagination={'per_page': self.tables2_pagination or 10}, custom_queryset=self.custom_queryset, custom_context=self.custom_context, custom_postfix_url=self.custom_postfix_url) parent_classes = [BaseListViewMixin, SingleTableView] if self.custom_list_view_mixin: parent_classes.insert(0, self.custom_list_view_mixin) list_class = type(name, tuple(parent_classes), list_args) self.classes[name] = list_class return list_class
def generate_list_view(self): """Generate class based view for ListView""" name = model_class_form(self.model + 'ListView') list_args = dict( model=self.get_model_class, context_object_name=plural(self.model), template_name=self.get_template('list'), table_class=self.get_actual_table(), context_table_name='table_objects', crud=self.crud, permissions=self.view_permission('list'), permission_required=self.check_permission_required, login_required=self.check_login_required, table_pagination={'per_page': self.tables2_pagination or 10}, custom_queryset=self.custom_queryset, custom_context=self.custom_context, custom_postfix_url=self.custom_postfix_url ) list_class = type( name, (BaseListViewMixin, SingleTableView), list_args ) self.classes[name] = list_class return list_class
def generate_table(self): model_class = self.get_model_class() detail_url_name = '{}-{}-detail'.format( self.app, custom_postfix_url(self.crud(), self.model) ) main_attrs = dict( id=tables.LinkColumn(detail_url_name, args=[A('pk')]) ) meta_attrs = dict( model=model_class, fields=('id',) + self.tables2_fields if self.tables2_fields else ('id',), attrs={ "class": self.tables2_css_class, "empty_text": "No {} exist".format(plural(self.model)) }) main_attrs['Meta'] = type('Meta', (), meta_attrs) klass = type( model_class_form(self.model + 'Table'), (tables.Table,), main_attrs ) return klass
def generate_table(self): model_class = self.get_model_class() detail_url_name = '{}-{}-detail'.format( self.app, custom_postfix_url(self.crud(), self.model)) main_attrs = dict( id=tables.LinkColumn(detail_url_name, args=[A('pk')]) # uuid=tables.LinkColumn(detail_url_name, args=[A('uuid')]) #'uuid' replaced 'id' ) meta_attrs = dict( model=model_class, fields=('id', ) + self.tables2_fields if self.tables2_fields else ('id', ), # fields=self.tables2_fields, #Exclude 'id' in table field attrs={ "class": self.tables2_css_class, "empty_text": "No {} exist".format(plural(self.model)) }) main_attrs['Meta'] = type('Meta', (), meta_attrs) klass = type(model_class_form(self.model + 'Table'), (tables.Table, ), main_attrs) return klass
def get_context_data(self, **kwargs): context = super(CrudBuilderMixin, self).get_context_data(**kwargs) model = context['view'].model context['app_label'] = model._meta.app_label context['actual_model_name'] = model.__name__.lower() context['pluralized_model_name'] = plural(model.__name__.lower()) context['project_name'] = getattr( settings, 'PROJECT_NAME', 'CRUDBUILDER') return context
def get_context_data(self, **kwargs): context = super(CrudBuilderMixin, self).get_context_data(**kwargs) model = context['view'].model context['app_label'] = model._meta.app_label context['actual_model_name'] = model.__name__.lower() context['pluralized_model_name'] = plural(model.__name__.lower()) context['project_name'] = getattr(settings, 'PROJECT_NAME', 'CRUDBUILDER') return context
def get_context_data(self, **kwargs): context = super(CrudBuilderMixin, self).get_context_data(**kwargs) model = context['view'].model context['app_label'] = model._meta.app_label try: context['exclude'] = self.detailview_excludes except: context['exclude'] =None context['actual_model_name'] = model.__name__.lower() context['pluralized_model_name'] = plural(model.__name__.lower()) context['verbose_model_name'] = model._meta.verbose_name context['verbose_model_name_plural'] = model._meta.verbose_name_plural context['project_name'] = getattr( settings, 'PROJECT_NAME', 'CRUDBUILDER') return context
def get_context_data(self, **kwargs): context = super(CrudBuilderMixin, self).get_context_data(**kwargs) model = context['view'].model context['app_label'] = model._meta.app_label try: context['exclude'] = self.detailview_excludes except: context['exclude'] = None context['actual_model_name'] = model.__name__.lower() context['pluralized_model_name'] = plural(model.__name__.lower()) context['verbose_model_name'] = model._meta.verbose_name context['custom_postfix_url'] = self.custom_postfix_url context['verbose_model_name_plural'] = model._meta.verbose_name_plural context['project_name'] = getattr(settings, 'PROJECT_NAME', 'CRUDBUILDER') return context
from crudbuilder.registry import registry from crudbuilder.views import ViewBuilder from crudbuilder import helpers helpers.auto_discover() urlpatterns = [] tables = connection.introspection.table_names() if tables: for app_model, base_crud in registry.items(): app, model = app_model.split('-') viewbuilder = ViewBuilder(app, model, base_crud) urls = [] pluralized = helpers.plural(model) list_view = viewbuilder.generate_list_view() update_view = viewbuilder.generate_update_view() detail_view = viewbuilder.generate_detail_view() create_view = viewbuilder.generate_create_view() delete_view = viewbuilder.generate_delete_view() entries = [ (r'^{}/{}/$', list_view.as_view(), '{}-{}-list'), (r'^{}/{}/(?P<pk>\d+)/$', detail_view.as_view(), '{}-{}-detail'), (r'^{}/{}/create/$', create_view.as_view(), '{}-{}-create'), (r'^{}/{}/(?P<pk>\d+)/update/$', update_view.as_view(), '{}-{}-update'), (r'^{}/{}/(?P<pk>\d+)/delete/$',
from crudbuilder.registry import registry from crudbuilder.views import ViewBuilder from crudbuilder import helpers helpers.auto_discover() urlpatterns = [] tables = connection.introspection.table_names() if tables: for app_model, base_crud in registry.items(): app, model = app_model.split('-') viewbuilder = ViewBuilder(app, model, base_crud) urls = [] pluralized = helpers.plural(model) list_view = viewbuilder.generate_list_view() update_view = viewbuilder.generate_update_view() detail_view = viewbuilder.generate_detail_view() create_view = viewbuilder.generate_create_view() delete_view = viewbuilder.generate_delete_view() entries = [ (r'^{}/{}/$', list_view.as_view(), '{}-{}-list'), (r'^{}/{}/(?P<pk>\d+)/$', detail_view.as_view(), '{}-{}-detail'), (r'^{}/{}/create/$', create_view.as_view(), '{}-{}-create'), (r'^{}/{}/(?P<pk>\d+)/update/$', update_view.as_view(), '{}-{}-update'), (r'^{}/{}/(?P<pk>\d+)/delete/$', delete_view.as_view(), '{}-{}-delete'),
def generate_table(self): model_class = self.get_model_class() detail_url_name = "{}-{}-detail".format(self.app, self.model) main_attrs = dict(id=tables.LinkColumn(detail_url_name, args=[A("pk")])) meta_attrs = dict( model=model_class, fields=("id",) + self.tables2_fields if self.tables2_fields else ("id",), attrs={"class": self.tables2_css_class, "empty_text": "No {} exist".format(plural(self.model))}, ) main_attrs["Meta"] = type("Meta", (), meta_attrs) klass = type(model_class_form(self.model + "Table"), (tables.Table,), main_attrs) return klass