Completed
Push — master ( 21b94f...0c3366 )
by Asif
01:28
created

PersonEmploymentCrud   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Importance

Changes 5
Bugs 2 Features 1
Metric Value
wmc 1
c 5
b 2
f 1
dl 0
loc 15
rs 10
1
from crudbuilder.abstract import BaseCrudBuilder
2
from crudbuilder.formset import BaseInlineFormset
3
4
from example.models import Person, PersonEmployment
5
from example.forms import(
6
    PersonEmployementCreateForm,
7
    PersonEmployementUpdateForm
8
)
9
10
11
class PersonEmploymentInlineFormset(BaseInlineFormset):
12
    inline_model = PersonEmployment
13
    parent_model = Person
14
    exclude = ['created_by', 'updated_by']
15
16
17
class PersonCrud(BaseCrudBuilder):
18
    model = Person
19
    search_fields = ['name']
20
    tables2_fields = ('name', 'email')
21
    tables2_css_class = "table table-bordered table-condensed"
22
    tables2_pagination = 10  # default is 10
23
    modelform_excludes = ['created_by', 'updated_by']
24
    login_required = True
25
    permission_required = True
26
    # inlineformset = PersonEmploymentInlineFormset
27
28
    # custom_templates = {
29
    #     'list': 'yourtemplates/template.html'
30
    # }
31
32
    # permissions = {
33
    #     'list': 'example.person_list',
34
    #     'create': 'example.person_create'
35
    # }
36
37
    # @classmethod
38
    # def custom_queryset(cls, request, **kwargs):
39
    #     return cls.model.objects.filter(created_by=request.user)
40
41
42
class PersonEmploymentCrud(BaseCrudBuilder):
43
    model = PersonEmployment
44
    tables2_fields = ('year', 'salary', 'medical_allowance')
45
    search_fields = ['year', 'person__name']
46
    tables2_css_class = "table table-bordered table-condensed"
47
    # custom_modelform = PersonEmploymentForm
48
    # modelform_excludes = ['person']
49
    createupdate_forms = {
50
        'create': PersonEmployementCreateForm,
51
        'update': PersonEmployementUpdateForm
52
    }
53
54
    @classmethod
55
    def custom_queryset(cls, request, **kwargs):
56
        return cls.model.objects.filter(medical_allowance=False)
57