Skip to content

Commit 7d24f7e

Browse files
committed
cleaner function to check is relation field
1 parent 3db0cb4 commit 7d24f7e

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

django_dyn_dt/templates/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<!-- data-tables -->
99
<link href="https://cdn.jsdelivr.net/npm/simple-datatables@latest/dist/style.css" rel="stylesheet" type="text/css">
10-
<script src="https://cdn.jsdelivr.net/npm/simple-datatables@latest" type="text/javascript"></script>
10+
<script src="https://cdn.jsdelivr.net/npm/simple-datatables@3.2.0" type="text/javascript"></script>
1111

1212
<!-- bootstrap5 -->
1313
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

django_dyn_dt/templates/static/src/controller/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,11 @@ export const columnsManage = (dataTable) => {
155155

156156
const id = myData.headings.indexOf(e.target.closest('input').id)
157157
if (e.target.closest('input').checked) {
158-
dataTable.columns.hide([parseInt(id)])
158+
dataTable.columns().hide([parseInt(id)])
159159
const hideColumns = JSON.parse(localStorage.getItem('hideColumns')) || []
160160
localStorage.setItem('hideColumns' , JSON.stringify([...hideColumns , e.target.closest('input').id]))
161161
} else {
162-
dataTable.columns.show([parseInt(id)])
162+
dataTable.columns().show([parseInt(id)])
163163
const hideColumns = JSON.parse(localStorage.getItem('hideColumns')) || []
164164
localStorage.setItem('hideColumns' , JSON.stringify(hideColumns.filter(d => d !== e.target.closest('input').id)))
165165
}

django_dyn_dt/templates/static/src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ myData.data.forEach((d,i) => {
3939
newColumn.push(editBtn + " &nbsp; " + removeBtn)
4040
})
4141
// add buttons
42-
dataTable.columns.add({
42+
dataTable.columns().add({
4343
heading: '',
4444
data: newColumn
4545
})
@@ -66,7 +66,7 @@ window.onload = () => {
6666

6767
const hideColumns = JSON.parse(localStorage.getItem('hideColumns'))
6868
hideColumns.forEach(d => {
69-
dataTable.columns.hide([myData.headings.indexOf(d)])
69+
dataTable.columns().hide([myData.headings.indexOf(d)])
7070
})
7171

7272
const els = document.getElementsByClassName('form-check-input')

django_dyn_dt/views.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -234,13 +234,14 @@ def get_random_string(length):
234234
def _get_headings(model_class, filter_relations=True):
235235
headings = []
236236
for field in model_class._meta.get_fields():
237-
field_dict = field.__dict__
238-
is_many_to_many_field = field_dict.get('many_to_many', False)
239-
is_many_to_one_field = field_dict.get('many_to_one', False)
240-
is_one_to_many_field = field_dict.get('one_to_many', False)
241-
is_one_to_one_field = field_dict.get('one_to_one', False)
242-
if filter_relations and (
243-
is_many_to_many_field or is_many_to_one_field or is_one_to_many_field or is_one_to_one_field):
237+
if filter_relations and _is_relation_field(field):
244238
continue
245239
headings.append(field.name)
246240
return headings
241+
242+
def _is_relation_field(field):
243+
is_many_to_many_field = field.many_to_many is not None
244+
is_many_to_one_field = field.many_to_one is not None
245+
is_one_to_many_field = field.one_to_many is not None
246+
is_one_to_one_field = field.one_to_one is not None
247+
return is_many_to_many_field or is_many_to_one_field or is_one_to_many_field or is_one_to_one_field

0 commit comments

Comments
 (0)