slthcore 0.3.0__tar.gz → 0.3.2__tar.gz

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.

Potentially problematic release.


This version of slthcore might be problematic. Click here for more details.

Files changed (104) hide show
  1. {slthcore-0.3.0/slthcore.egg-info → slthcore-0.3.2}/PKG-INFO +1 -1
  2. {slthcore-0.3.0 → slthcore-0.3.2}/setup.py +1 -1
  3. {slthcore-0.3.0 → slthcore-0.3.2}/slth/components.py +9 -1
  4. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/__init__.py +6 -1
  5. {slthcore-0.3.0 → slthcore-0.3.2}/slth/models.py +12 -1
  6. {slthcore-0.3.0 → slthcore-0.3.2}/slth/queryset.py +5 -1
  7. {slthcore-0.3.0 → slthcore-0.3.2}/slth/static/js/slth.min.js +18 -18
  8. {slthcore-0.3.0 → slthcore-0.3.2/slthcore.egg-info}/PKG-INFO +1 -1
  9. {slthcore-0.3.0 → slthcore-0.3.2}/MANIFEST.in +0 -0
  10. {slthcore-0.3.0 → slthcore-0.3.2}/setup.cfg +0 -0
  11. {slthcore-0.3.0 → slthcore-0.3.2}/slth/__init__.py +0 -0
  12. {slthcore-0.3.0 → slthcore-0.3.2}/slth/apps.py +0 -0
  13. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/configure/__main__.py +0 -0
  14. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/__main__.py +0 -0
  15. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/__pycache__/__main__.cpython-312.pyc +0 -0
  16. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/.DS_Store +0 -0
  17. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/.gitignore +0 -0
  18. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/api/__init__.py +0 -0
  19. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/api/asgi.py +0 -0
  20. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/api/endpoints/__init__.py +0 -0
  21. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/api/models.py +0 -0
  22. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/api/settings.py +0 -0
  23. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/api/tests.py +0 -0
  24. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/api/urls.py +0 -0
  25. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/api/wsgi.py +0 -0
  26. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/application.yml +0 -0
  27. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/entrypoint.sh +0 -0
  28. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/manage.py +0 -0
  29. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/backend/requirements.txt +0 -0
  30. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/base.env +0 -0
  31. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/docker-compose.yml +0 -0
  32. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/frontend/package.json +0 -0
  33. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/frontend/src/main.jsx +0 -0
  34. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/frontend/vite.config.js +0 -0
  35. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/local.env +0 -0
  36. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/run.sh +0 -0
  37. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/selenium/run.sh +0 -0
  38. {slthcore-0.3.0 → slthcore-0.3.2}/slth/cmd/init/boilerplate/test.sh +0 -0
  39. {slthcore-0.3.0 → slthcore-0.3.2}/slth/db/__init__.py +0 -0
  40. {slthcore-0.3.0 → slthcore-0.3.2}/slth/db/generic.py +0 -0
  41. {slthcore-0.3.0 → slthcore-0.3.2}/slth/db/models.py +0 -0
  42. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/auth.py +0 -0
  43. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/deletion.py +0 -0
  44. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/dev.py +0 -0
  45. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/email.py +0 -0
  46. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/job.py +0 -0
  47. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/log.py +0 -0
  48. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/profile.py +0 -0
  49. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/pushsubscription.py +0 -0
  50. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/report.py +0 -0
  51. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/role.py +0 -0
  52. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/task.py +0 -0
  53. {slthcore-0.3.0 → slthcore-0.3.2}/slth/endpoints/user.py +0 -0
  54. {slthcore-0.3.0 → slthcore-0.3.2}/slth/exceptions.py +0 -0
  55. {slthcore-0.3.0 → slthcore-0.3.2}/slth/factory.py +0 -0
  56. {slthcore-0.3.0 → slthcore-0.3.2}/slth/forms.py +0 -0
  57. {slthcore-0.3.0 → slthcore-0.3.2}/slth/management/__init__.py +0 -0
  58. {slthcore-0.3.0 → slthcore-0.3.2}/slth/management/commands/__init__.py +0 -0
  59. {slthcore-0.3.0 → slthcore-0.3.2}/slth/management/commands/integration_test.py +0 -0
  60. {slthcore-0.3.0 → slthcore-0.3.2}/slth/management/commands/sync.py +0 -0
  61. {slthcore-0.3.0 → slthcore-0.3.2}/slth/management/commands/worker.py +0 -0
  62. {slthcore-0.3.0 → slthcore-0.3.2}/slth/middleware/__init__.py +0 -0
  63. {slthcore-0.3.0 → slthcore-0.3.2}/slth/middleware/timezone.py +0 -0
  64. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0001_initial.py +0 -0
  65. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0002_email_role_pushsubscription_error.py +0 -0
  66. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0003_rename_photo_profile_alter_profile_options.py +0 -0
  67. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0004_alter_profile_photo.py +0 -0
  68. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0005_alter_profile_photo.py +0 -0
  69. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0006_user.py +0 -0
  70. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0007_deletion_log.py +0 -0
  71. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0008_alter_deletion_datetime_alter_log_datetime.py +0 -0
  72. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0009_remove_email_from_email_email_action_email_attempt_and_more.py +0 -0
  73. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/0010_email_key_alter_email_action_alter_email_attempt_and_more.py +0 -0
  74. {slthcore-0.3.0 → slthcore-0.3.2}/slth/migrations/__init__.py +0 -0
  75. {slthcore-0.3.0 → slthcore-0.3.2}/slth/notifications.py +0 -0
  76. {slthcore-0.3.0 → slthcore-0.3.2}/slth/oauth.py +0 -0
  77. {slthcore-0.3.0 → slthcore-0.3.2}/slth/pdf/__init__.py +0 -0
  78. {slthcore-0.3.0 → slthcore-0.3.2}/slth/pdf/tests.py +0 -0
  79. {slthcore-0.3.0 → slthcore-0.3.2}/slth/permissions.py +0 -0
  80. {slthcore-0.3.0 → slthcore-0.3.2}/slth/printer.py +0 -0
  81. {slthcore-0.3.0 → slthcore-0.3.2}/slth/roles.py +0 -0
  82. {slthcore-0.3.0 → slthcore-0.3.2}/slth/selenium/__init__.py +0 -0
  83. {slthcore-0.3.0 → slthcore-0.3.2}/slth/selenium/browser.py +0 -0
  84. {slthcore-0.3.0 → slthcore-0.3.2}/slth/serializer.py +0 -0
  85. {slthcore-0.3.0 → slthcore-0.3.2}/slth/static/.DS_Store +0 -0
  86. {slthcore-0.3.0 → slthcore-0.3.2}/slth/static/css/.DS_Store +0 -0
  87. {slthcore-0.3.0 → slthcore-0.3.2}/slth/static/css/slth.css +0 -0
  88. {slthcore-0.3.0 → slthcore-0.3.2}/slth/static/js/index.min.js +0 -0
  89. {slthcore-0.3.0 → slthcore-0.3.2}/slth/static/js/react.min.js +0 -0
  90. {slthcore-0.3.0 → slthcore-0.3.2}/slth/statistics.py +0 -0
  91. {slthcore-0.3.0 → slthcore-0.3.2}/slth/tasks.py +0 -0
  92. {slthcore-0.3.0 → slthcore-0.3.2}/slth/templates/email.html +0 -0
  93. {slthcore-0.3.0 → slthcore-0.3.2}/slth/templates/index.html +0 -0
  94. {slthcore-0.3.0 → slthcore-0.3.2}/slth/templates/report.html +0 -0
  95. {slthcore-0.3.0 → slthcore-0.3.2}/slth/templates/service-worker.js +0 -0
  96. {slthcore-0.3.0 → slthcore-0.3.2}/slth/templates/signature.html +0 -0
  97. {slthcore-0.3.0 → slthcore-0.3.2}/slth/tests.py +0 -0
  98. {slthcore-0.3.0 → slthcore-0.3.2}/slth/threadlocal.py +0 -0
  99. {slthcore-0.3.0 → slthcore-0.3.2}/slth/urls.py +0 -0
  100. {slthcore-0.3.0 → slthcore-0.3.2}/slth/utils.py +0 -0
  101. {slthcore-0.3.0 → slthcore-0.3.2}/slth/views.py +0 -0
  102. {slthcore-0.3.0 → slthcore-0.3.2}/slthcore.egg-info/SOURCES.txt +0 -0
  103. {slthcore-0.3.0 → slthcore-0.3.2}/slthcore.egg-info/dependency_links.txt +0 -0
  104. {slthcore-0.3.0 → slthcore-0.3.2}/slthcore.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: slthcore
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: API generator based on yml file
5
5
  Home-page: https://github.com/brenokcc
6
6
  Author: Breno Silva
@@ -5,7 +5,7 @@ install_requires = []
5
5
 
6
6
  setup(
7
7
  name='slthcore',
8
- version='0.3.0',
8
+ version='0.3.2',
9
9
  packages=find_packages(),
10
10
  install_requires=install_requires,
11
11
  include_package_data=True,
@@ -169,6 +169,13 @@ class Table(dict):
169
169
  )
170
170
 
171
171
 
172
+ class HtmlContent(dict):
173
+ def __init__(self, content, autoreload=None):
174
+ self["type"] = "html"
175
+ self["content"] = content
176
+ self["autoreload"] = autoreload * 1000 if autoreload else None
177
+
178
+
172
179
  class TemplateContent(dict):
173
180
  def __init__(self, name, context, autoreload=None):
174
181
  self["type"] = "html"
@@ -217,12 +224,13 @@ class ZoomMeet(dict):
217
224
 
218
225
 
219
226
  class Navbar(dict):
220
- def __init__(self, title, subtitle=None, logo=None, user=None, search=False, roles=None):
227
+ def __init__(self, title, subtitle=None, logo=None, user=None, photo=None, search=False, roles=None):
221
228
  self["type"] = "navbar"
222
229
  self["title"] = title
223
230
  self["subtitle"] = subtitle
224
231
  self["logo"] = logo
225
232
  self["user"] = user
233
+ self["photo"] = photo
226
234
  self["usermenu"] = []
227
235
  self["adder"] = []
228
236
  self["tools"] = []
@@ -331,7 +331,7 @@ class ModelEndpoint(Endpoint):
331
331
  super().__init__()
332
332
 
333
333
  def get_icon(self):
334
- return self.model._meta.icon or super().get_icon()
334
+ return super().get_icon() or getattr(self.model._meta, 'icon', None)
335
335
 
336
336
 
337
337
  class QuerySetEndpoint(Generic[T], ModelEndpoint):
@@ -564,17 +564,22 @@ class Dashboard(Endpoint):
564
564
  class Application(PublicEndpoint):
565
565
  def get(self):
566
566
  user = None
567
+ photo = None
567
568
  navbar = None
568
569
  menu = None
569
570
  icon = build_url(self.request, APPLICATON["logo"])
570
571
  logo = build_url(self.request, APPLICATON["logo"])
571
572
  if self.request.user.is_authenticated:
572
573
  user = self.request.user.username.split()[0].split("@")[0]
574
+ profile = Profile.objects.filter(user=self.request.user).first()
575
+ photo = profile and profile.photo and build_url(self.request, profile.photo.url)
576
+
573
577
  navbar = Navbar(
574
578
  title=APPLICATON["title"],
575
579
  subtitle=APPLICATON["subtitle"],
576
580
  logo=logo,
577
581
  user=user,
582
+ photo=photo,
578
583
  search=False,
579
584
  roles=' | '.join((str(role) for role in self.objects('slth.role').filter(username=self.request.user.username)))
580
585
  )
@@ -18,6 +18,7 @@ from django.core import serializers
18
18
  from django.template.loader import render_to_string
19
19
  from django.core.mail import EmailMultiAlternatives
20
20
  from .notifications import send_push_web_notification
21
+ from .components import HtmlContent
21
22
 
22
23
  from slth import APPLICATON
23
24
  from django.contrib.auth.models import BaseUserManager
@@ -327,7 +328,7 @@ class PushNotification(models.Model):
327
328
 
328
329
  class EmailManager(models.Manager):
329
330
  def all(self):
330
- return self.order_by('-id').rows()
331
+ return self.fields('subject', 'to', 'content', 'send_at', 'sent_at').search('subject', 'content', 'to').filters('send_at__gte', 'send_at__lte', 'sent_at__gte', 'sent_at__lte').rows().order_by('-id')
331
332
 
332
333
  def create(self, to, subject, content, send_at=None, action=None, url=None, key=None):
333
334
  to = [to] if isinstance(to, str) else list(to)
@@ -391,6 +392,16 @@ class Email(models.Model):
391
392
  ).fieldset(
392
393
  'Botão', ('action', 'url')
393
394
  )
395
+
396
+ def serializer(self):
397
+ return super().serializer().fieldset(
398
+ 'Dados Gerais', ('subject', 'to', 'get_content', ('send_at', 'sent_at'))
399
+ ).fieldset(
400
+ 'Botão', ('action', 'url')
401
+ )
402
+
403
+ def get_content(self):
404
+ return HtmlContent(self.content)
394
405
 
395
406
 
396
407
  class Profile(models.Model):
@@ -407,6 +407,7 @@ class QuerySet(models.QuerySet):
407
407
  field = None
408
408
  value = None
409
409
  ignore = 'icontains', 'contains', 'gt', 'gte', 'lt', 'lte', 'id', 'year', 'month'
410
+ symbols = dict(gt=' >', gte=' ⋝', lt=' <', lte=' ⋜')
410
411
  tmp = []
411
412
  for lookup in name.split('__'):
412
413
  if lookup in ignore:
@@ -441,7 +442,10 @@ class QuerySet(models.QuerySet):
441
442
  choices = [{'id': '', 'value':''}]
442
443
  choices.extend([{'id': k, 'value': v} for k, v in field.choices])
443
444
  choices.append({'id': 'null', 'value':'Nulo'})
444
- data = dict(name=name, type=field_type, value=value, label=str(field.verbose_name).title(), required=False, mask=None)
445
+ label = str(field.verbose_name).title()
446
+ symbol = symbols.get(suffix) if suffix else None
447
+ label = label + symbol if symbol else label
448
+ data = dict(name=name, type=field_type, value=value, label=label, required=False, mask=None)
445
449
  if choices:
446
450
  data.update(choices=choices)
447
451
  return data