Code Duplication    Length = 18-25 lines in 3 locations

crudbuilder/views.py 3 locations

@@ 107-131 (lines=25) @@
104
        self.classes[name] = list_class
105
        return list_class
106
107
    def generate_create_view(self):
108
        """Generate class based view for CreateView"""
109
110
        name = model_class_form(self.model + 'CreateView')
111
        create_args = dict(
112
            form_class=self.get_actual_form('create'),
113
            model=self.get_model_class,
114
            template_name=self.get_template('create'),
115
            permissions=self.view_permission('create'),
116
            permission_required=self.check_permission_required,
117
            login_required=self.check_login_required,
118
            inlineformset=self.inlineformset,
119
            success_url=reverse_lazy('{}-{}-list'.format(self.app, self.custom_postfix_url)),
120
            custom_form=self.createupdate_forms or self.custom_modelform,
121
            custom_postfix_url=self.custom_postfix_url
122
        )
123
124
        create_class = type(
125
            name,
126
            (self.get_createupdate_mixin(), CreateView),
127
            create_args
128
        )
129
130
        self.classes[name] = create_class
131
        return create_class
132
133
    def generate_detail_view(self):
134
        """Generate class based view for DetailView"""
@@ 152-175 (lines=24) @@
149
        self.classes[name] = detail_class
150
        return detail_class
151
152
    def generate_update_view(self):
153
        """Generate class based view for UpdateView"""
154
155
        name = model_class_form(self.model + 'UpdateView')
156
        update_args = dict(
157
            form_class=self.get_actual_form('update'),
158
            model=self.get_model_class,
159
            template_name=self.get_template('update'),
160
            permissions=self.view_permission('update'),
161
            permission_required=self.check_permission_required,
162
            login_required=self.check_login_required,
163
            inlineformset=self.inlineformset,
164
            custom_form=self.createupdate_forms or self.custom_modelform,
165
            success_url=reverse_lazy('{}-{}-list'.format(self.app, self.custom_postfix_url)),
166
            custom_postfix_url=self.custom_postfix_url
167
        )
168
169
        update_class = type(
170
            name,
171
            (self.get_createupdate_mixin(), UpdateView),
172
            update_args
173
        )
174
        self.classes[name] = update_class
175
        return update_class
176
177
    def generate_delete_view(self):
178
        """Generate class based view for DeleteView"""
@@ 133-150 (lines=18) @@
130
        self.classes[name] = create_class
131
        return create_class
132
133
    def generate_detail_view(self):
134
        """Generate class based view for DetailView"""
135
136
        name = model_class_form(self.model + 'DetailView')
137
        detail_args = dict(
138
            detailview_excludes=self.detailview_excludes,
139
            model=self.get_model_class,
140
            template_name=self.get_template('detail'),
141
            login_required=self.check_login_required,
142
            permissions=self.view_permission('detail'),
143
            inlineformset=self.inlineformset,
144
            permission_required=self.check_permission_required,
145
            custom_postfix_url=self.custom_postfix_url
146
        )
147
148
        detail_class = type(name, (BaseDetailViewMixin, DetailView), detail_args)
149
        self.classes[name] = detail_class
150
        return detail_class
151
152
    def generate_update_view(self):
153
        """Generate class based view for UpdateView"""