djgentelella 0.3.28__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. djgentelella/__init__.py +4 -1
  2. djgentelella/admin.py +4 -3
  3. djgentelella/fields/files.py +27 -1
  4. djgentelella/firmador_digital/__init__.py +0 -0
  5. djgentelella/firmador_digital/config/__init__.py +0 -0
  6. djgentelella/firmador_digital/config/asgi_config.py +32 -0
  7. djgentelella/firmador_digital/config/asgi_worker.py +5 -0
  8. djgentelella/firmador_digital/config/websocket_urls.py +4 -0
  9. djgentelella/firmador_digital/consumers/__init__.py +0 -0
  10. djgentelella/firmador_digital/consumers/pdf_render.py +8 -0
  11. djgentelella/firmador_digital/consumers/sign.py +148 -0
  12. djgentelella/firmador_digital/forms.py +28 -0
  13. djgentelella/firmador_digital/gunicorn/config_asgi.py +12 -0
  14. djgentelella/firmador_digital/gunicorn/config_wsgi.py +13 -0
  15. djgentelella/firmador_digital/models.py +33 -0
  16. djgentelella/firmador_digital/signvalue_utils.py +41 -0
  17. djgentelella/firmador_digital/utils.py +154 -0
  18. djgentelella/firmador_digital/viewsets.py +77 -0
  19. djgentelella/groute.py +6 -1
  20. djgentelella/gtselects.py +5 -9
  21. djgentelella/locale/es/LC_MESSAGES/django.mo +0 -0
  22. djgentelella/locale/es/LC_MESSAGES/django.po +103 -6
  23. djgentelella/locale/es/LC_MESSAGES/djangojs.mo +0 -0
  24. djgentelella/locale/es/LC_MESSAGES/djangojs.po +107 -8
  25. djgentelella/management/commands/createbasejs.py +3 -0
  26. djgentelella/management/commands/loaddevstatic.py +18 -0
  27. djgentelella/migrations/0013_usersignatureconfig.py +25 -0
  28. djgentelella/serializers/firmador_digital.py +103 -0
  29. djgentelella/settings.py +5 -4
  30. djgentelella/static/djgentelella.readonly.vendors.min.css +1 -1
  31. djgentelella/static/djgentelella.readonly.vendors.min.js +1 -1
  32. djgentelella/static/djgentelella.vendors.header.min.js +1 -1
  33. djgentelella/static/djgentelella.vendors.min.css +2 -2
  34. djgentelella/static/gentelella/css/pdfviewer.css +147 -0
  35. djgentelella/static/gentelella/images/firmador.ico +0 -0
  36. djgentelella/static/gentelella/js/base/digital_signature.js +945 -0
  37. djgentelella/static/gentelella/js/base.js +947 -0
  38. djgentelella/static/gentelella/js/datatables.js +2 -2
  39. djgentelella/static/gentelella/js/widgets.js +72 -59
  40. djgentelella/static/vendors/friconix/friconix.js +1 -1
  41. djgentelella/static/vendors/pdfjs/images/altText_add.svg +3 -0
  42. djgentelella/static/vendors/pdfjs/images/altText_disclaimer.svg +3 -0
  43. djgentelella/static/vendors/pdfjs/images/altText_done.svg +3 -0
  44. djgentelella/static/vendors/pdfjs/images/altText_spinner.svg +30 -0
  45. djgentelella/static/vendors/pdfjs/images/altText_warning.svg +3 -0
  46. djgentelella/static/vendors/pdfjs/images/cursor-editorFreeHighlight.svg +6 -0
  47. djgentelella/static/vendors/pdfjs/images/cursor-editorFreeText.svg +3 -0
  48. djgentelella/static/vendors/pdfjs/images/cursor-editorInk.svg +4 -0
  49. djgentelella/static/vendors/pdfjs/images/cursor-editorTextHighlight.svg +8 -0
  50. djgentelella/static/vendors/pdfjs/images/editor-toolbar-delete.svg +5 -0
  51. djgentelella/static/vendors/pdfjs/images/loading-icon.gif +0 -0
  52. djgentelella/static/vendors/pdfjs/images/messageBar_closingButton.svg +3 -0
  53. djgentelella/static/vendors/pdfjs/images/messageBar_warning.svg +3 -0
  54. djgentelella/static/vendors/pdfjs/images/toolbarButton-editorHighlight.svg +6 -0
  55. djgentelella/static/vendors/pdfjs/images/toolbarButton-menuArrow.svg +3 -0
  56. djgentelella/static/vendors/timeline/css/timeline.css +1 -1
  57. djgentelella/static/vendors/timeline/js/timeline.js +1 -1
  58. djgentelella/templates/gentelella/registration/login.html +38 -42
  59. djgentelella/templates/gentelella/statics/javascript.html +75 -61
  60. djgentelella/templates/gentelella/statics/stylesheets.html +11 -10
  61. djgentelella/templates/gentelella/widgets/addtreeselect.html +1 -1
  62. djgentelella/templates/gentelella/widgets/chunkedupload.html +2 -2
  63. djgentelella/templates/gentelella/widgets/digital_signature.html +208 -0
  64. djgentelella/templates/gentelella/widgets/file.html +15 -16
  65. djgentelella/templatetags/gtsettings.py +4 -0
  66. djgentelella/urls.py +1 -1
  67. djgentelella/widgets/core.py +5 -2
  68. djgentelella/widgets/digital_signature.py +116 -0
  69. {djgentelella-0.3.28.dist-info → djgentelella-0.4.0.dist-info}/METADATA +18 -20
  70. {djgentelella-0.3.28.dist-info → djgentelella-0.4.0.dist-info}/RECORD +74 -37
  71. {djgentelella-0.3.28.dist-info → djgentelella-0.4.0.dist-info}/WHEEL +1 -1
  72. {djgentelella-0.3.28.dist-info → djgentelella-0.4.0.dist-info}/AUTHORS +0 -0
  73. {djgentelella-0.3.28.dist-info → djgentelella-0.4.0.dist-info}/LICENSE.txt +0 -0
  74. {djgentelella-0.3.28.dist-info → djgentelella-0.4.0.dist-info}/top_level.txt +0 -0
@@ -162,7 +162,7 @@ function clearDataTableFilters(dataTable, tableId){
162
162
  $(tableId).find('input, select').val('');
163
163
  $(tableId).find('.tableselect').val(null).trigger('change');
164
164
  }
165
- function yesnoprint(data, type, row, meta){ return data ? "<i class=\"fa fa-check-circle\"></i> "+gettext("Yes") : "<i class=\"fa fa-times-circle\"></i>"+gettext("No"); };
165
+ function yesnoprint(data, type, row, meta){ return data ? "<i class=\"fa fa-check-circle\"></i> "+gettext("Yes") : "<i class=\"fa fa-times-circle\"></i> "+gettext("No"); };
166
166
  function emptyprint(data, type, row, meta){ return data ? data : "--"; };
167
167
  // hacer que se pueda definir el tipo el objeto ej data.name
168
168
 
@@ -269,7 +269,7 @@ function gtCreateDataTable(id, url, table_options={}){
269
269
 
270
270
  function createDataTable(id, url, extraoptions={}, addfilter=false, formatDataTableParamsfnc=formatDataTableParams){
271
271
  const options = Object.assign({}, {
272
- formatDataTableParamsfnc : formatDataTableParams,
272
+ formatDataTableParamsfnc : formatDataTableParamsfnc,
273
273
  addfilter: addfilter
274
274
  }, extraoptions);
275
275
  return gtCreateDataTable(id, url, options);
@@ -1,32 +1,32 @@
1
1
  document.formset = [];
2
2
  document.gtwidgets = {
3
- ImageRecordInput: function(instance){
3
+ ImageRecordInput: function (instance) {
4
4
  instance.each(function (i, e) {
5
5
  getMediaRecord(e, 'photo');
6
6
  });
7
7
  },
8
- VideoRecordInput: function(instance){
8
+ VideoRecordInput: function (instance) {
9
9
  instance.each(function (i, e) {
10
10
  getMediaRecord(e, 'video');
11
11
  });
12
12
  },
13
- AudioRecordInput: function(instance){
13
+ AudioRecordInput: function (instance) {
14
14
  instance.each(function (i, e) {
15
15
  getMediaRecord(e, 'audio');
16
16
  });
17
17
  },
18
18
  Select: function (instance) {
19
19
  instance.each(function (i, e) {
20
- let s2instance=$(e);
21
- let contexts2={};
20
+ let s2instance = $(e);
21
+ let contexts2 = {};
22
22
  extract_select2_context(contexts2, s2instance);
23
23
  s2instance.select2(contexts2);
24
24
  });
25
25
  },
26
26
  SelectMultiple: function (instance) {
27
27
  instance.each(function (i, e) {
28
- let s2instance=$(e);
29
- let contexts2={};
28
+ let s2instance = $(e);
29
+ let contexts2 = {};
30
30
  extract_select2_context(contexts2, s2instance);
31
31
  s2instance.select2(contexts2);
32
32
  });
@@ -34,8 +34,8 @@ document.gtwidgets = {
34
34
  TreeSelect: function (instance) {
35
35
 
36
36
  instance.each(function (i, e) {
37
- let s2instance=$(e);
38
- let contexts2={ templateResult: decore_select2 };
37
+ let s2instance = $(e);
38
+ let contexts2 = {templateResult: decore_select2};
39
39
  extract_select2_context(contexts2, s2instance);
40
40
  s2instance.select2(contexts2);
41
41
  });
@@ -43,7 +43,7 @@ document.gtwidgets = {
43
43
  CheckboxInput: function (instance) {
44
44
 
45
45
  var checkklass = instance.data('checkboxclass') || 'icheckbox_flat-green';
46
- var radioklass = instance.data('radioclass') || 'iradio_flat-green';
46
+ var radioklass = instance.data('radioclass') || 'iradio_flat-green';
47
47
  instance.iCheck({
48
48
  checkboxClass: checkklass,
49
49
  radioClass: radioklass
@@ -51,14 +51,14 @@ document.gtwidgets = {
51
51
  },
52
52
  YesNoInput: function (instance) {
53
53
  instance.each(function (index, element) {
54
- switchery = new Switchery(element, { color: '#26B99A' });
54
+ switchery = new Switchery(element, {color: '#26B99A'});
55
55
  instance.data('switchery', switchery);
56
56
  showHideRelatedFormFields($(element));
57
57
  });
58
58
  },
59
- NullBooleanSelect: function(instance){
59
+ NullBooleanSelect: function (instance) {
60
60
  var checkklass = instance.data('checkboxclass') || 'icheckbox_flat-green';
61
- var radioklass = instance.data('radioclass') || 'iradio_flat-green';
61
+ var radioklass = instance.data('radioclass') || 'iradio_flat-green';
62
62
  instance.iCheck({
63
63
  checkboxClass: checkklass,
64
64
  radioClass: radioklass
@@ -66,11 +66,11 @@ document.gtwidgets = {
66
66
  },
67
67
  DateRangeInput: function (instance) {
68
68
  format = instance.attr('data-format')
69
- instance.each((i,element)=>{
70
- $(element).daterangepicker(load_date_range(instance), (from_date, to_date) => {
71
- $(element).val(from_date.format(format) + ' - ' + to_date.format(format));
69
+ instance.each((i, element) => {
70
+ $(element).daterangepicker(load_date_range(instance), (from_date, to_date) => {
71
+ $(element).val(from_date.format(format) + ' - ' + to_date.format(format));
72
+ });
72
73
  });
73
- });
74
74
  },
75
75
 
76
76
  GridSlider: function (instance) {
@@ -86,56 +86,62 @@ document.gtwidgets = {
86
86
  instance.daterangepicker(load_date_range_custom(instance));
87
87
  },
88
88
  RadioVerticalSelect: function (instance) {
89
- instance.find('input').iCheck({ radioClass: 'iradio_flat-green' });
89
+ instance.find('input').iCheck({radioClass: 'iradio_flat-green'});
90
90
  },
91
91
  RadioHorizontalSelect: function (instance) {
92
- instance.find('input').iCheck({ radioClass: 'iradio_flat-green' });
92
+ instance.find('input').iCheck({radioClass: 'iradio_flat-green'});
93
93
  },
94
94
  DateRangeTimeInput: function (instance) {
95
95
  instance.daterangepicker(load_datetime_range(instance));
96
96
  },
97
97
  DateTimeInput: function (instance) {
98
- instance.datetimepicker({format : instance.data('format'),
99
- sideBySide: true, icons: {
100
- time: "fa fa-clock-o",
101
- up: "fa fa-arrow-up",
102
- down: "fa fa-arrow-down"
103
- } });// "YYYY-MM-DD HH:mm"
98
+ instance.datetimepicker({
99
+ format: instance.data('format'),
100
+ sideBySide: true, icons: {
101
+ time: "fa fa-clock-o",
102
+ up: "fa fa-arrow-up",
103
+ down: "fa fa-arrow-down"
104
+ }
105
+ });// "YYYY-MM-DD HH:mm"
104
106
  },
105
107
  TimeInput: function (instance) {
106
- instance.datetimepicker({format : instance.data('format'),
107
- sideBySide: true, icons: {
108
- time: "fa fa-clock-o",
109
- up: "fa fa-arrow-up",
110
- down: "fa fa-arrow-down"
111
- } }); // 'HH:mm'
108
+ instance.datetimepicker({
109
+ format: instance.data('format'),
110
+ sideBySide: true, icons: {
111
+ time: "fa fa-clock-o",
112
+ up: "fa fa-arrow-up",
113
+ down: "fa fa-arrow-down"
114
+ }
115
+ }); // 'HH:mm'
112
116
  },
113
117
  DateInput: function (instance) {
114
- instance.datetimepicker({format: instance.data('format') }); //"DD/MM/YYYY"
118
+ instance.datetimepicker({format: instance.data('format')}); //"DD/MM/YYYY"
115
119
  },
116
120
  Textarea: function (instance) {
117
121
  autosize(instance);
118
122
  instance.each(function (i, e) {
119
123
  if ($(e).attr('maxlength') != undefined) {
120
- $(e).maxlength({ alwaysShow: true, warningClass: "label label-success" });
124
+ $(e).maxlength({alwaysShow: true, warningClass: "label label-success"});
121
125
  }
122
126
  });
123
127
  },
124
128
  PhoneNumberMaskInput: function (instance) {
125
- instance.inputmask({ "mask": "(999)9999-9999" });
129
+ instance.inputmask({"mask": "(999)9999-9999"});
126
130
  },
127
131
  PhoneNumberTwoDigitMaskInput: function (instance) {
128
- instance.inputmask({ "mask": "(99)9999-9999" });
132
+ instance.inputmask({"mask": "(99)9999-9999"});
129
133
  },
130
134
  PhoneNumberFourDigitMaskInput: function (instance) {
131
- instance.inputmask({ "mask": "(9999)9999-9999" });
135
+ instance.inputmask({"mask": "(9999)9999-9999"});
132
136
  },
133
137
  DateMaskInput: function (instance) {
134
- instance.inputmask("99/99/9999", { "placeholder": "dd/mm/yyyy" });
138
+ instance.inputmask("99/99/9999", {"placeholder": "dd/mm/yyyy"});
135
139
  },
136
140
  DateTimeMaskInput: function (instance) {
137
- instance.inputmask("99/99/9999 99:99", { "placeholder": "dd/mm/yyyy HH:mm",
138
- format: "YYYY-MM-DD HH:mm"});
141
+ instance.inputmask("99/99/9999 99:99", {
142
+ "placeholder": "dd/mm/yyyy HH:mm",
143
+ format: "YYYY-MM-DD HH:mm"
144
+ });
139
145
  },
140
146
  EmailMaskInput: function (instance) {
141
147
  instance.inputmask({
@@ -156,8 +162,8 @@ document.gtwidgets = {
156
162
  SelectWithAdd: function (instance) {
157
163
  instance.addselectwidget();
158
164
  instance.each(function (i, e) {
159
- let contexts2={};
160
- let s2instance=$(e);
165
+ let contexts2 = {};
166
+ let s2instance = $(e);
161
167
  extract_select2_context(contexts2, s2instance);
162
168
  s2instance.select2(contexts2);
163
169
  });
@@ -165,18 +171,18 @@ document.gtwidgets = {
165
171
  SelectMultipleAdd: function (instance) {
166
172
  instance.addselectwidget();
167
173
  instance.each(function (i, e) {
168
- let contexts2={};
169
- let s2instance=$(e);
174
+ let contexts2 = {};
175
+ let s2instance = $(e);
170
176
  extract_select2_context(contexts2, s2instance);
171
177
  s2instance.select2(contexts2);
172
178
  });
173
179
  },
174
180
  TreeSelectMultipleWithAdd: function (instance) {
175
181
  instance.addselectwidget();
176
- instance.select2({ templateResult: decore_select2 });
182
+ instance.select2({templateResult: decore_select2});
177
183
  instance.each(function (i, e) {
178
- let s2instance=$(e);
179
- let contexts2={ templateResult: decore_select2 };
184
+ let s2instance = $(e);
185
+ let contexts2 = {templateResult: decore_select2};
180
186
  extract_select2_context(contexts2, s2instance);
181
187
  s2instance.select2(contexts2);
182
188
  });
@@ -184,8 +190,8 @@ document.gtwidgets = {
184
190
  TreeSelectWithAdd: function (instance) {
185
191
  instance.addselectwidget();
186
192
  instance.each(function (i, e) {
187
- let s2instance=$(e);
188
- let contexts2={ templateResult: decore_select2 };
193
+ let s2instance = $(e);
194
+ let contexts2 = {templateResult: decore_select2};
189
195
  extract_select2_context(contexts2, s2instance);
190
196
  s2instance.select2(contexts2);
191
197
  });
@@ -200,13 +206,13 @@ document.gtwidgets = {
200
206
  build_select2_init(instance);
201
207
  },
202
208
  SerialNumberMaskInput: function (instance) {
203
- instance.inputmask({ "mask": "9999-9999-9999-9999-999" });
209
+ instance.inputmask({"mask": "9999-9999-9999-9999-999"});
204
210
  },
205
211
  TaxIDMaskInput: function (instance) {
206
- instance.inputmask({ "mask": "99-99999999" });
212
+ instance.inputmask({"mask": "99-99999999"});
207
213
  },
208
214
  CreditCardMaskInput: function (instance) {
209
- instance.inputmask({ "mask": "9999-9999-9999-9999" });
215
+ instance.inputmask({"mask": "9999-9999-9999-9999"});
210
216
  },
211
217
  NumberKnobInput: function (instance) {
212
218
  instance.knob();
@@ -217,7 +223,7 @@ document.gtwidgets = {
217
223
  menubar: false,
218
224
  toolbar: 'undo redo | bold italic underline strikethrough | fontselect fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist checklist | forecolor backcolor casechange permanentpen formatpainter removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media pageembed template link anchor codesample | a11ycheck ltr rtl | showcomments addcomment',
219
225
  plugins: ['autolink', 'codesample', 'link', 'lists', 'media', 'quickbars', "advlist autolink lists link image charmap print preview anchor",
220
- "searchreplace visualblocks code fullscreen","insertdatetime media table paste imagetools wordcount",
226
+ "searchreplace visualblocks code fullscreen", "insertdatetime media table paste imagetools wordcount",
221
227
  "autoresize", "hr", "image",
222
228
  ],
223
229
  quickbars_insert_toolbar: 'quicktable | hr pagebreak',
@@ -228,7 +234,7 @@ document.gtwidgets = {
228
234
  input.onchange = function () {
229
235
  var file = this.files[0];
230
236
  upload_files(callback, meta, file, instance.attr('data-option-image'),
231
- instance.attr('data-option-video'));
237
+ instance.attr('data-option-video'));
232
238
  };
233
239
  input.click();
234
240
  },
@@ -241,7 +247,7 @@ document.gtwidgets = {
241
247
  menubar: false,
242
248
  toolbar: 'undo redo | bold italic underline strikethrough | fontselect fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist checklist | forecolor backcolor casechange permanentpen formatpainter removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media pageembed template link anchor codesample | a11ycheck ltr rtl | showcomments addcomment',
243
249
  plugins: ['autolink', 'codesample', 'link', 'lists', 'media', 'quickbars', "advlist autolink lists link image charmap print preview anchor",
244
- "searchreplace visualblocks code fullscreen","insertdatetime media table paste imagetools wordcount",
250
+ "searchreplace visualblocks code fullscreen", "insertdatetime media table paste imagetools wordcount",
245
251
  "autoresize", "hr", "image",
246
252
  ],
247
253
  quickbars_insert_toolbar: 'quicktable | hr pagebreak',
@@ -252,7 +258,7 @@ document.gtwidgets = {
252
258
  input.onchange = function () {
253
259
  var file = this.files[0];
254
260
  upload_files(callback, meta, file, instance.attr('data-option-image'),
255
- instance.attr('data-option-video'));
261
+ instance.attr('data-option-video'));
256
262
  };
257
263
  input.click();
258
264
  },
@@ -268,12 +274,12 @@ document.gtwidgets = {
268
274
  DJGraph: function (instance) {
269
275
  instance.gentelella_chart();
270
276
  },
271
- NullBooleanSelect: function(instance){
272
- instance.iCheck({
277
+ NullBooleanSelect: function (instance) {
278
+ instance.iCheck({
273
279
  checkboxClass: 'icheckbox_flat-green',
274
280
  radioClass: 'iradio_flat-green'
275
281
  });
276
- },
282
+ },
277
283
  UrlTimeLineInput: function (instance) {
278
284
  build_timeline(instance);
279
285
  },
@@ -292,7 +298,14 @@ document.gtwidgets = {
292
298
  },
293
299
  RemoteAutocompleteEmailTagifyWidget: function(instance){
294
300
  build_remote_tagify_email(instance)
295
- }
301
+
302
+ },
303
+ DigitalSignatureInput: function (instance) {
304
+ // instancia del dom = e
305
+ instance.each(function (i, e) {
306
+ build_digital_signature(e);
307
+ });
308
+ },
296
309
  }
297
310
 
298
311
  function gt_find_initialize(instance) {