djgentelella 0.4.4__py3-none-any.whl → 0.4.6__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.
djgentelella/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = '0.4.4'
1
+ __version__ = '0.4.6'
2
2
 
3
3
  if __name__ == '__main__':
4
4
  print(__version__)
@@ -4,6 +4,8 @@ from django import forms
4
4
  from django.core.exceptions import ValidationError
5
5
  from django.utils.translation import gettext_lazy as _
6
6
 
7
+ from djgentelella.firmador_digital.models import UserSignatureConfig, \
8
+ get_signature_default, FORMATS_DATE, FONT_ALIGNMENT, FONT_CHOICES
7
9
  from djgentelella.firmador_digital.signvalue_utils import ValueDSParser
8
10
  from djgentelella.forms.forms import GTForm
9
11
  from djgentelella.widgets import core as genwidgets
@@ -26,3 +28,111 @@ class RenderValueForm(GTForm, ValueDSParser):
26
28
  _("Invalid value not encoded as b64 o json parser error"),
27
29
  code="invalid")
28
30
  return jsondata
31
+
32
+
33
+ class SignatureConfigForm(GTForm, forms.ModelForm):
34
+ backgroundColor = forms.CharField(
35
+ max_length=50,
36
+ widget=genwidgets.ColorInput,
37
+ required=True,
38
+ label=_("Background color")
39
+ )
40
+ contact = forms.CharField(
41
+ required=False,
42
+ max_length=100,
43
+ widget=genwidgets.TextInput,
44
+ label=_("Contact")
45
+ )
46
+ dateFormat = forms.ChoiceField(
47
+ widget=genwidgets.Select,
48
+ required=True,
49
+ choices=FORMATS_DATE,
50
+ label=_("Date format")
51
+ )
52
+
53
+ defaultSignMessage = forms.CharField(
54
+ widget=genwidgets.Textarea,
55
+ required=False,
56
+ max_length=100,
57
+ label=_("Signature message")
58
+ )
59
+ # font = forms.ChoiceField(
60
+ # required=True,
61
+ # widget=genwidgets.Select,
62
+ # label=_("Font"),
63
+ # choices=FONT_CHOICES
64
+ # )
65
+ fontAlignment = forms.ChoiceField(
66
+ choices=FONT_ALIGNMENT,
67
+ widget=genwidgets.Select,
68
+ required=True,
69
+ label=_("Font alignment")
70
+ )
71
+ fontColor = forms.CharField(
72
+ max_length=50,
73
+ widget=genwidgets.ColorInput,
74
+ required=True,
75
+ label=_("Font color"),
76
+ )
77
+ fontSize = forms.IntegerField(
78
+ min_value=5,
79
+ max_value=28,
80
+ initial=7,
81
+ widget=genwidgets.NumberInput,
82
+ label=_("Font size")
83
+ )
84
+ place = forms.CharField(
85
+ required=False,
86
+ max_length=100,
87
+ widget=genwidgets.TextInput,
88
+ label=_("Place")
89
+ )
90
+ reason = forms.CharField(
91
+ required=False,
92
+ max_length=100,
93
+ widget=genwidgets.TextInput,
94
+ label=_("Reason")
95
+ )
96
+ isVisibleSignature = forms.BooleanField(
97
+ required=False,
98
+ widget=genwidgets.YesNoInput,
99
+ label=_("Visible signature")
100
+ )
101
+
102
+ default_render_type = "as_grid"
103
+
104
+ grid_representation = [
105
+ [["contact"]],
106
+ [["place"]],
107
+ [["reason"]],
108
+ # [["dateFormat"], ["font"]],
109
+ [["dateFormat"], ["isVisibleSignature"]],
110
+ [["fontSize"], ["fontColor"], ["backgroundColor"], ["fontAlignment"]],
111
+ # [["isVisibleSignature"]],
112
+ [["defaultSignMessage"]],
113
+ ]
114
+
115
+ class Meta:
116
+ model = UserSignatureConfig
117
+ fields = []
118
+
119
+ def __init__(self, *args, **kwargs):
120
+ super().__init__(*args, **kwargs)
121
+
122
+ cfg = self.instance.config if getattr(self.instance, "config",
123
+ None) else get_signature_default()
124
+ for key, value in cfg.items():
125
+ if key in self.fields:
126
+ self.fields[key].initial = value
127
+
128
+ def save(self, commit=True):
129
+ data = get_signature_default()
130
+ for key in data.keys():
131
+ if key in self.cleaned_data:
132
+ val = self.cleaned_data[key]
133
+
134
+ if isinstance(data[key], str) and not isinstance(val, str):
135
+ val = str(val)
136
+ data[key] = val
137
+ self.instance.config = data
138
+ return super().save(commit=commit)
@@ -1,6 +1,27 @@
1
+ from django.utils.translation import gettext_lazy as _
1
2
  from django.contrib.auth import get_user_model
2
3
  from django.db import models
3
4
 
5
+ FORMATS_DATE = [
6
+ ("dd/MM/yyyy hh:mm:ss a", "dd/MM/yyyy hh:mm:ss a"),
7
+ ("yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm:ss"),
8
+ ("MM/dd/yyyy hh:mm:ss a", "MM/dd/yyyy hh:mm:ss a"),
9
+ ("dd-MM-yyyy", "dd-MM-yyyy"),
10
+ ]
11
+
12
+ FONT_ALIGNMENT = [
13
+ ("LEFT", _("LEFT")),
14
+ ("CENTER", _("CENTER")),
15
+ ("RIGHT", _("RIGHT")),
16
+ ]
17
+
18
+ FONT_CHOICES = [
19
+ ("Nimbus Sans Regular", "Nimbus Sans Regular"),
20
+ ("Nimbus Sans Bold", "Nimbus Sans Bold"),
21
+ ("Nimbus Sans Italic", "Nimbus Sans Italic"),
22
+ ("Nimbus Sans Bold Italic", "Nimbus Sans Bold Italic"),
23
+ ]
24
+
4
25
  def get_signature_default():
5
26
  return {
6
27
  "backgroundColor": "transparente",
@@ -0,0 +1,31 @@
1
+ from django.contrib import messages
2
+ from django.contrib.auth.decorators import login_required
3
+ from django.shortcuts import render, get_object_or_404, redirect
4
+ from django.utils.translation import gettext_lazy as _
5
+
6
+ from djgentelella.firmador_digital.forms import SignatureConfigForm
7
+ from djgentelella.firmador_digital.models import UserSignatureConfig
8
+
9
+ @login_required
10
+ def update_signature_settings(request):
11
+
12
+ config, is_created = UserSignatureConfig.objects.get_or_create(user=request.user)
13
+
14
+
15
+ if request.method == "POST":
16
+ form = SignatureConfigForm(request.POST, instance=config, render_type="as_grid")
17
+ if form.is_valid():
18
+ form.save()
19
+ messages.success(request, _("Updated signature settings successfully."))
20
+ return redirect("signature_config")
21
+ else:
22
+ form = SignatureConfigForm(instance=config, render_type="as_grid")
23
+
24
+
25
+ return render(
26
+ request,
27
+ "gentelella/digital_signature/update_signature_settings.html",
28
+ context={
29
+ "form": form
30
+ }
31
+ )
djgentelella/groute.py CHANGED
@@ -18,7 +18,10 @@ def register_lookups(prefix='', basename=None):
18
18
  def decore(klass):
19
19
  if basename in ['userbase', 'groupbase']:
20
20
  from djgentelella import settings
21
- if settings.REGISTER_DEFAULT_USER_API:
21
+ if klass.__module__ == 'djgentelella.gtselects':
22
+ if settings.REGISTER_DEFAULT_USER_API:
23
+ routes.register(prefix, klass, basename=basename)
24
+ else:
22
25
  routes.register(prefix, klass, basename=basename)
23
26
  else:
24
27
  routes.register(prefix, klass, basename=basename)
@@ -616,3 +616,51 @@ msgstr "Iniciar"
616
616
 
617
617
  msgid "Unknown"
618
618
  msgstr "Desconocido"
619
+
620
+ msgid "LEFT"
621
+ msgstr "IZQUIERDA"
622
+
623
+ msgid "CENTER"
624
+ msgstr "CENTRO"
625
+
626
+ msgid "RIGHT"
627
+ msgstr "DERECHA"
628
+
629
+ msgid "Signature settings"
630
+ msgstr "Configuración de firma"
631
+
632
+ msgid "Updated signature settings successfully."
633
+ msgstr "Configuración de firma actualizada correctamente."
634
+
635
+ msgid "Background color"
636
+ msgstr "Color de fondo"
637
+
638
+ msgid "Contact"
639
+ msgstr "Contacto"
640
+
641
+ msgid "Date format"
642
+ msgstr "Formato de fecha"
643
+
644
+ msgid "Signature message"
645
+ msgstr "Mensaje de firma"
646
+
647
+ msgid "Font"
648
+ msgstr "Fuente"
649
+
650
+ msgid "Font alignment"
651
+ msgstr "Alineación de fuente"
652
+
653
+ msgid "Font color"
654
+ msgstr "Color de fuente"
655
+
656
+ msgid "Font size"
657
+ msgstr "Tamaño de fuente"
658
+
659
+ msgid "Place"
660
+ msgstr "Lugar"
661
+
662
+ msgid "Reason"
663
+ msgstr "Razón"
664
+
665
+ msgid "Visible signature"
666
+ msgstr "Firma visible"
@@ -0,0 +1,57 @@
1
+ {% extends 'gentelella/base.html' %}
2
+ {% load i18n %}
3
+
4
+ {% block title %} {% trans 'Signature settings' %} {% endblock %}
5
+
6
+ {% block pre_head %}
7
+ {% endblock %}
8
+
9
+ {% block content %}
10
+ <div class="card mt-2">
11
+ <div class="card-body">
12
+
13
+ <div class="card-title titles">
14
+ <h1 class="text-center">
15
+ {% trans 'Signature settings' %}
16
+ </h1>
17
+ </div>
18
+
19
+ <div class="row justify-content-center my-4">
20
+ <div class="col-lg-6 col-md-10 col-12">
21
+
22
+ <form action="" id="form_signature" method="POST">
23
+ {% csrf_token %}
24
+ {{ form.as_grid }}
25
+
26
+ <div class="text-center">
27
+ <button type="submit" name="action" value="update" class="btn btn-success btn-sm">
28
+ {% trans 'Save' %}
29
+ <i class="fa fa-floppy-o" aria-hidden="true"></i>
30
+ </button>
31
+ </div>
32
+
33
+ </form>
34
+
35
+ </div>
36
+ </div>
37
+
38
+ </div>
39
+ </div>
40
+ {% endblock %}
41
+
42
+ {% block js %}
43
+ <script>
44
+
45
+ // auto remove messages
46
+ document.addEventListener("DOMContentLoaded", function () {
47
+ setTimeout(function () {
48
+ document.querySelectorAll(".alert-success").forEach(function (message) {
49
+ message.style.transition = "opacity 0.5s";
50
+ message.style.opacity = "0";
51
+ setTimeout(() => message.remove(), 500);
52
+ });
53
+ }, 1500);
54
+ });
55
+
56
+ </script>
57
+ {% endblock %}
djgentelella/urls.py CHANGED
@@ -13,6 +13,7 @@ from djgentelella.notification.base import NotificacionAPIView, NotificationView
13
13
  from djgentelella.permission_management import views as permissions
14
14
  from djgentelella.widgets.helper import HelperWidgetView
15
15
  from djgentelella.wysiwyg import views as wysiwyg
16
+ from djgentelella.firmador_digital import views as firmador_digital
16
17
  from .groute import routes
17
18
  from .templatetags.gtsettings import get_version
18
19
  from .views import auth
@@ -88,6 +89,7 @@ base_urlpatterns = [
88
89
  re_path('^notification/list/$', notification_list_view,
89
90
  name="notification_list"),
90
91
  path('tableapi/', include(router.urls)),
92
+ path("update_config/", firmador_digital.update_signature_settings, name="signature_config"),
91
93
  ]
92
94
 
93
95
  permission_management_urls = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: djgentelella
3
- Version: 0.4.4
3
+ Version: 0.4.6
4
4
  Summary: Help building extra widgets for forms and speciall methods to render forms in templates
5
5
  Author-email: Solvosoft <info@solvosoft.com>
6
6
  Maintainer-email: Luis Zarate Montero <luis.zarate@solvosoft.com>
@@ -1,15 +1,15 @@
1
- djgentelella/__init__.py,sha256=SZ45PeABDxCAv7VZI4emwNNgGIkc2K-9QlgBEXYY9m0,73
1
+ djgentelella/__init__.py,sha256=1XSKCxRWCYAlvKy0ZadvDp5Sq250jvxn79PQCZSQvvM,73
2
2
  djgentelella/admin.py,sha256=hFPWtRyTZWYtuKEv-SZ3r6lHw3aissX0ObqxYmxblY0,1531
3
3
  djgentelella/apps.py,sha256=5VEbpUv4b1Jh7gCRAQCe5TvpakRyndKwafjVj0z-Xfo,153
4
4
  djgentelella/chartjs.py,sha256=iNYoFnaIQoXsYInJFbSE2quWpjmDz5CuMKpVsvt4pRM,8572
5
5
  djgentelella/elements.py,sha256=tMGzA1pE_PytYgAMJutuaYGsnk4k8y7-Kg_D6F5rV6o,3340
6
6
  djgentelella/exceptions.py,sha256=x321e40KAjqS5cDv7lIc1TEoSYwTw-pHm7eZV_o0xBI,262
7
- djgentelella/groute.py,sha256=EMJhNK9uEziyf4Gz0Q4hoiYCUqVe4PhYOkiNSuqAaq8,646
7
+ djgentelella/groute.py,sha256=FPKKZBfm0UYAfMKmeLGhPBWqPXqazADjt7iKMruVmcE,799
8
8
  djgentelella/gtselects.py,sha256=f8tBg68KQoYYCW1YNZt8PiKmdjItJY2kwN23ScO6nqM,590
9
9
  djgentelella/models.py,sha256=PZGQiIGdDxhkdXAPIXb2tgyDvnnyK6e0ePjRBRJ6Bg4,4560
10
10
  djgentelella/objectmanagement.py,sha256=y_dkSKIOfKKK9t1hZ8mwcM5RNxj0bChpKYvUn50mVzs,3121
11
11
  djgentelella/settings.py,sha256=kOuXF0T9ZIg_NqIStkiKdM-QOLrRjjfHP-AVXvSGRAM,3205
12
- djgentelella/urls.py,sha256=tmTYPnNcJkcNlAhe2mp-BcSGsRmvEJuTFFZ7a2rSp9Q,4864
12
+ djgentelella/urls.py,sha256=rbc8w4gEDZ5ahdGLhOKpYIFp7BRy2EwcPhJIownuFdc,5029
13
13
  djgentelella/utils.py,sha256=Bh_-KBrrLRAK_b_CkyYm0Y0HdKyJAp2vNIwESYd3PcA,825
14
14
  djgentelella/blog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  djgentelella/blog/admin.py,sha256=ImQU7Q0SJNTigjgz1o6mizJwFEepZle5JSCBJXheLMw,29
@@ -55,10 +55,11 @@ djgentelella/fields/drfdatetime.py,sha256=CpN5wT-NmaG8q8cKjwEuylhnlNHRqx-aIwdWqH
55
55
  djgentelella/fields/files.py,sha256=pezlWl7WYtSFE0DSBcOeVf4zZo9MUkm_TxQZYYN6TZ4,5538
56
56
  djgentelella/fields/tree.py,sha256=I_XxsnxXuXiJbeQSEEyni_AzoiYkNJuPE7LBO6mqrXs,2209
57
57
  djgentelella/firmador_digital/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- djgentelella/firmador_digital/forms.py,sha256=NGcpQOI1eUq3An5aYLI2eFjXH28nuaqMYbSyhD6tPhk,868
59
- djgentelella/firmador_digital/models.py,sha256=i6odjdzP3hvAi31gIKJq6sqYkcCWf_78igEAk4_6mw4,1035
58
+ djgentelella/firmador_digital/forms.py,sha256=sXDHEza76gNwnmwlbuQmf87vFFmIV8jOGSWC0P8QbJs,4024
59
+ djgentelella/firmador_digital/models.py,sha256=MeuVxToDTWQugnCqLL1Zp1Us1y8GlyZW0Sd5XWwCaw4,1652
60
60
  djgentelella/firmador_digital/signvalue_utils.py,sha256=Nh8v8AkmAjWXOP9hcc9pVNhzJZpTnHwJ1a9dnWqTWTo,1320
61
61
  djgentelella/firmador_digital/utils.py,sha256=jlJorQh8cC8iJCe5gXS3d-mR_GK8_XjaKEq4GeZ5Zbc,5354
62
+ djgentelella/firmador_digital/views.py,sha256=Q7qQnznedQ55cG2MtE4exztF6vFT3o6HfppZlAUaLek,1058
62
63
  djgentelella/firmador_digital/viewsets.py,sha256=caxoifIMe1UHh61wmHjpRoBcyga08B8uViQgGZIVYsY,3274
63
64
  djgentelella/firmador_digital/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
65
  djgentelella/firmador_digital/config/asgi_config.py,sha256=mGWMKpdgoqL28MTwuQTEHtf3JJYxah3-Uguddd9p3DM,1071
@@ -73,8 +74,8 @@ djgentelella/forms/__init__.py,sha256=tsFtaTeLH5pOQrgAVd4xjU6w3rPskn15b9kiW9GZuH
73
74
  djgentelella/forms/decorators.py,sha256=MpXYM2P4lgLLoNhTVwphYHPENIipKk-qEP9MmEa-nrY,2328
74
75
  djgentelella/forms/forms.py,sha256=wFpNJT8GAhYDfjGZ_f_IrHRIAC9Ly1_VznDQCoDgUAg,7718
75
76
  djgentelella/forms/models.py,sha256=eZNVwPVytY0vVXUgmVWiZfZsXctFy62O1JsYyxqL4v0,389
76
- djgentelella/locale/es/LC_MESSAGES/django.mo,sha256=nhgNgd7-UdcF8svqO1zmH7w9PUrnVkDyOBkkTdgllrk,13845
77
- djgentelella/locale/es/LC_MESSAGES/django.po,sha256=el-Vh6DRjx8n0JPQe3FvvfvFiqaRdzJ23RRqKAezBNM,13705
77
+ djgentelella/locale/es/LC_MESSAGES/django.mo,sha256=8CfwOhzXiQDeg0P8Buulhpf9xgMmHAc66Jfy0trjJ1M,14626
78
+ djgentelella/locale/es/LC_MESSAGES/django.po,sha256=Rq92B5KgyWuWlLtm-IOoUong5TYk4Pfb5Sr51Z-sgBc,14446
78
79
  djgentelella/locale/es/LC_MESSAGES/djangojs.mo,sha256=g0X3s9MJspT8HmHXz6ZS34dUwELqGy9lZ3VJPedDEq8,5113
79
80
  djgentelella/locale/es/LC_MESSAGES/djangojs.po,sha256=SGBjuy44s0bfqWkXI3ua1v_hBHe-89kdBXT_A3vH7iE,5292
80
81
  djgentelella/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -885,6 +886,7 @@ djgentelella/templates/gentelella/cruds/list.html,sha256=1FjqKMaOUZcnViXWMsKnAdh
885
886
  djgentelella/templates/gentelella/cruds/update.html,sha256=NvZwBrNlOMRDtdTTRP5TR1aIH6KRrcGTQ-4Di5dPfOM,3862
886
887
  djgentelella/templates/gentelella/cruds/pagination/enumeration.html,sha256=cOHleHuHqm8j3W7ZwFX5Hi9Q_pyY9yRD_3_7702_3Hw,337
887
888
  djgentelella/templates/gentelella/cruds/pagination/prev_next.html,sha256=1R0ww5emRFF3_qi-xJpCOmuXMdbcdw8xX4I68qX5h8M,731
889
+ djgentelella/templates/gentelella/digital_signature/update_signature_settings.html,sha256=E7Ast9y-7rbDFA2tn3pt_KmaSMmZm1yjxPM5tz2mHFA,1260
888
890
  djgentelella/templates/gentelella/email/base.html,sha256=05y5UHVuo7jcqUe8edyNa5mnshVZfvcnw554DJLXouc,55
889
891
  djgentelella/templates/gentelella/email/notification.html,sha256=PH823Y0uYzi9OKle42zqihKHQYfevlshwSPRyN7tUxo,287
890
892
  djgentelella/templates/gentelella/menu/notificacion.html,sha256=rF7Xf9dm1wdoUMkAF4E6xX7fOd4kqifLaHet0CO_P3o,1659
@@ -1030,9 +1032,9 @@ djgentelella/widgets/trees.py,sha256=bV6s-w1cgYahS0aNU6xBrx-aISdlzDZ23BFt3_3hAu4
1030
1032
  djgentelella/widgets/wysiwyg.py,sha256=wHeMyYNVE8-lKJ06A-0DLDAcRNv3TOAOG_Wl9DYZqS0,609
1031
1033
  djgentelella/wysiwyg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1032
1034
  djgentelella/wysiwyg/views.py,sha256=tI7LjLhCnohdvIEOEEhB2Cu1zxRmdcOhYJJX4LBIZaA,1159
1033
- djgentelella-0.4.4.dist-info/AUTHORS,sha256=HyQoO-q7oXtavpNm7jaBVv8Vxx3c7yo33xkFkt4blkY,118
1034
- djgentelella-0.4.4.dist-info/LICENSE.txt,sha256=wDzqAntLQORAL6vQhVdzZyfsPVvFStZKtkct5DIZjK0,18047
1035
- djgentelella-0.4.4.dist-info/METADATA,sha256=iKgO9iJZjRE8qTE2A6wrnlzbqGYdOKPnaLEBa_1OaY0,27544
1036
- djgentelella-0.4.4.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1037
- djgentelella-0.4.4.dist-info/top_level.txt,sha256=88JbODVPV-P5q7ic25yMHt_FuuizaLzMyIaegpFa7Qk,13
1038
- djgentelella-0.4.4.dist-info/RECORD,,
1035
+ djgentelella-0.4.6.dist-info/AUTHORS,sha256=HyQoO-q7oXtavpNm7jaBVv8Vxx3c7yo33xkFkt4blkY,118
1036
+ djgentelella-0.4.6.dist-info/LICENSE.txt,sha256=wDzqAntLQORAL6vQhVdzZyfsPVvFStZKtkct5DIZjK0,18047
1037
+ djgentelella-0.4.6.dist-info/METADATA,sha256=T5Kp761lzmXIaKSgud9uDBZmQPaW6o11ryIjlheH19U,27544
1038
+ djgentelella-0.4.6.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1039
+ djgentelella-0.4.6.dist-info/top_level.txt,sha256=88JbODVPV-P5q7ic25yMHt_FuuizaLzMyIaegpFa7Qk,13
1040
+ djgentelella-0.4.6.dist-info/RECORD,,