Code Duplication    Length = 16-23 lines in 4 locations

crudbuilder/views.py 4 locations

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