Пример #1
0
class ViewBuilderTestCase(TestCase):
    def setUp(self):
        self.builder = ViewBuilder('tests', 'testmodel', TestModelCrud)

    def test_get_model_class(self):
        model_class = self.builder.get_model_class
        self.assertEqual(model_class.__name__, "TestModel")

    def test_list_view(self):
        list_view = self.builder.generate_list_view()
        self.assertEqual(list_view.__name__, "TestmodelListView")
        self.assertEqual(list_view.table_pagination,
                         {'per_page': self.builder.tables2_pagination})

    def test_create_view(self):
        create_view = self.builder.generate_create_view()
        self.assertEqual(create_view.__name__, 'TestmodelCreateView')

    def test_detail_view(self):
        detail_view = self.builder.generate_detail_view()
        self.assertEqual(detail_view.__name__, 'TestmodelDetailView')

    def test_update_view(self):
        update_view = self.builder.generate_update_view()
        self.assertEqual(update_view.__name__, 'TestmodelUpdateView')

    def test_table_pagination(self):
        tables2_pagination = self.builder.tables2_pagination
        self.assertEqual(tables2_pagination, 20)

        # test the default pagination
        self.builder.tables2_pagination = None
        list_view = self.builder.generate_list_view()
        self.assertEqual(list_view.table_pagination, {'per_page': 10})

    def test_tables2_fields(self):
        tables2_fields = self.builder.tables2_fields
        self.assertEqual(tables2_fields, ('name', 'email'))

    def test_custom_list_view_permission(self):
        # test custom permission
        self.builder.permissions = dict(list='mycustom_list_perm')
        self.assertEqual(self.builder.view_permission('list'),
                         'mycustom_list_perm')

    def test_default_list_view_permission(self):
        # test auto generated (default) permission
        self.assertEqual(self.builder.view_permission('list'),
                         'tests.testmodel_list')

    def test_check_crud_views(self):
        self.builder.generate_crud()
        generated_views = [
            view_type for view_type in self.builder.classes.keys()
        ]
        expected_views = [
            'TestmodelCreateView', 'TestmodelListView', 'TestmodelDetailView',
            'TestmodelUpdateView', 'TestmodelDeleteView'
        ]
        self.assertEqual(sorted(generated_views), sorted(expected_views))
Пример #2
0
from django.http import HttpResponse
from crudbuilder.views import ViewBuilder
from django.db.utils import OperationalError
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from usuarios.models import Usuarios
from io import BytesIO
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, cm
from django.http import HttpResponse
from datetime import datetime
try:
    builder = ViewBuilder('usuarios', 'usuarios', UsuarioCrud)
    builder.generate_crud()
except OperationalError:
    pass  # happens when db doesn't exist yet, views.py should be
    # importable without this side effect


def report(request):
    response = HttpResponse(content_type='application/pdf')
    response[
        'Content-Disposition'] = 'attachment; filename=reporte_clientes.pdf'

    buffer = BytesIO()
    c = canvas.Canvas(buffer, pagesize=A4)

    x = datetime.now()
    # Header
class ViewBuilderTestCase(TestCase):
    def setUp(self):
        self.builder = ViewBuilder('tests', 'testmodel', TestModelCrud)

    def test_get_model_class(self):
        model_class = self.builder.get_model_class
        self.assertEqual(model_class.__name__, "TestModel")

    def test_list_view(self):
        list_view = self.builder.generate_list_view()
        self.assertEqual(list_view.__name__, "TestmodelListView")
        self.assertEqual(list_view.table_pagination, {'per_page': self.builder.tables2_pagination})

    def test_create_view(self):
        create_view = self.builder.generate_create_view()
        self.assertEqual(create_view.__name__, 'TestmodelCreateView')

    def test_detail_view(self):
        detail_view = self.builder.generate_detail_view()
        self.assertEqual(detail_view.__name__, 'TestmodelDetailView')

    def test_update_view(self):
        update_view = self.builder.generate_update_view()
        self.assertEqual(update_view.__name__, 'TestmodelUpdateView')

    def test_table_pagination(self):
        tables2_pagination = self.builder.tables2_pagination
        self.assertEqual(tables2_pagination, 20)

        # test the default pagination
        self.builder.tables2_pagination = None
        list_view = self.builder.generate_list_view()
        self.assertEqual(list_view.table_pagination, {'per_page': 10})

    def test_tables2_feilds(self):
        tables2_feilds = self.builder.tables2_fields
        self.assertEqual(tables2_feilds,  ('name', 'email'))

    def test_custom_list_view_permission(self):
        # test custom permission
        self.builder.permissions = dict(list='mycustom_list_perm')
        self.assertEqual(
            self.builder.view_permission('list'),
            'mycustom_list_perm')

    def test_default_list_view_permission(self):
        # test auto generated (default) permission
        self.assertEqual(
            self.builder.view_permission('list'),
            'tests.testmodel_list')

    def test_check_crud_views(self):
        self.builder.generate_crud()
        generated_views = [
            view_type for view_type in self.builder.classes.keys()]
        expected_views = [
            'TestmodelCreateView',
            'TestmodelListView',
            'TestmodelDetailView',
            'TestmodelUpdateView',
            'TestmodelDeleteView'
        ]
        self.assertEqual(sorted(generated_views), sorted(expected_views))
Пример #4
0
from django.http import HttpResponseRedirect

from crudbuilder.views import ViewBuilder
from crudbuilder.helpers import reverse
from example.crud import PersonCrud

builder = ViewBuilder('example', 'person', PersonCrud)
builder.generate_crud()

PersonListView = builder.classes['PersonListView']
PersonCreateView = builder.classes['PersonCreateView']
PersonUpdateView = builder.classes['PersonUpdateView']
PersonDetailView = builder.classes['PersonDetailView']


class MyCustomPersonListView(PersonListView):
    def get_context_data(self, **kwargs):
        context = super(MyCustomPersonListView, self).get_context_data(**kwargs)
        context['your_template_variable'] = 'Your new template variable'
        return context

    def get_queryset(self):
        # return super(MyCustomPersonListView, self).get_queryset()
        return self.model.objects.none()


class MyCustomPersonDetailView(PersonDetailView):
    def get_context_data(self, **kwargs):
        context = super(MyCustomPersonDetailView, self).get_context_data(**kwargs)
        # context['form'] = YourAnotherForm
        return context