tina4-python 0.2.131__tar.gz → 0.2.133__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.
Files changed (51) hide show
  1. {tina4_python-0.2.131 → tina4_python-0.2.133}/PKG-INFO +1 -1
  2. {tina4_python-0.2.131 → tina4_python-0.2.133}/pyproject.toml +1 -1
  3. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Template.py +16 -1
  4. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/templates/components/crud.twig +1 -3
  5. {tina4_python-0.2.131 → tina4_python-0.2.133}/.gitignore +0 -0
  6. {tina4_python-0.2.131 → tina4_python-0.2.133}/README.md +0 -0
  7. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Auth.py +0 -0
  8. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/CRUD.py +0 -0
  9. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Constant.py +0 -0
  10. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Database.py +0 -0
  11. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/DatabaseResult.py +0 -0
  12. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/DatabaseTypes.py +0 -0
  13. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Debug.py +0 -0
  14. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Env.py +0 -0
  15. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/HtmlElement.py +0 -0
  16. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Localization.py +0 -0
  17. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Messages.py +0 -0
  18. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/MiddleWare.py +0 -0
  19. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Migration.py +0 -0
  20. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/ORM.py +0 -0
  21. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Queue.py +0 -0
  22. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Request.py +0 -0
  23. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Response.py +0 -0
  24. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Router.py +0 -0
  25. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Session.py +0 -0
  26. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/ShellColors.py +0 -0
  27. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Swagger.py +0 -0
  28. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Webserver.py +0 -0
  29. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/Websocket.py +0 -0
  30. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/__init__.py +0 -0
  31. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/messages.pot +0 -0
  32. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/css/readme.md +0 -0
  33. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/favicon.ico +0 -0
  34. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/images/403.png +0 -0
  35. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/images/404.png +0 -0
  36. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/images/500.png +0 -0
  37. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/images/logo.png +0 -0
  38. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/images/readme.md +0 -0
  39. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/js/readme.md +0 -0
  40. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/js/reconnecting-websocket.js +0 -0
  41. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/js/tina4helper.js +0 -0
  42. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/swagger/index.html +0 -0
  43. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/public/swagger/oauth2-redirect.html +0 -0
  44. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/templates/errors/403.twig +0 -0
  45. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/templates/errors/404.twig +0 -0
  46. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/templates/errors/500.twig +0 -0
  47. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/templates/readme.md +0 -0
  48. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/translations/en/LC_MESSAGES/messages.mo +0 -0
  49. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/translations/en/LC_MESSAGES/messages.po +0 -0
  50. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/translations/fr/LC_MESSAGES/messages.mo +0 -0
  51. {tina4_python-0.2.131 → tina4_python-0.2.133}/tina4_python/translations/fr/LC_MESSAGES/messages.po +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tina4-python
3
- Version: 0.2.131
3
+ Version: 0.2.133
4
4
  Summary: Tina4Python - This is not another framework for Python
5
5
  Author-email: Andre van Zuydam <andrevanzuydam@gmail.com>
6
6
  Requires-Python: <4.0,>=3.12
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tina4-python"
3
- version = "0.2.131"
3
+ version = "0.2.133"
4
4
  description = "Tina4Python - This is not another framework for Python"
5
5
  authors = [
6
6
  {name = "Andre van Zuydam",email = "andrevanzuydam@gmail.com"}
@@ -35,9 +35,13 @@ class Template:
35
35
  Template.twig.add_extension('jinja2.ext.do')
36
36
  Template.twig.globals['RANDOM'] = RANDOM
37
37
  Template.twig.globals['json'] = json
38
+ Template.twig.globals['base64encode'] = Template.base64encode
39
+ Template.twig.filters['base64encode'] = Template.base64encode
38
40
  Template.twig.filters['detect_image'] = Template.detect_image
39
41
  Template.twig.filters['json_encode'] = json.dumps
40
- Template.twig.filters['json_decode'] = json.loads
42
+ Template.twig.globals['json_encode'] = json.dumps
43
+ Template.twig.filters['json_decode'] = Template.json_decode
44
+ Template.twig.globals['json_decode'] = Template.json_decode
41
45
  Template.twig.filters['nice_label'] = Template.get_nice_label
42
46
  Template.twig.globals['formToken'] = Template.get_form_token
43
47
  Template.twig.filters['formToken'] = Template.get_form_token_input
@@ -54,8 +58,14 @@ class Template:
54
58
  Debug.error("DUMP FOUND ON PAGE!")
55
59
  return ""
56
60
 
61
+ @staticmethod
62
+ def json_decode(param):
63
+ param = html.unescape(param)
64
+ return ast.literal_eval(param)
65
+
57
66
  @staticmethod
58
67
  def dump(param):
68
+ param = html.unescape(param)
59
69
  if param is not None and not isinstance(param, Undefined):
60
70
  def json_serialize(obj):
61
71
  if isinstance(obj, (date, datetime)):
@@ -68,6 +78,11 @@ class Template:
68
78
  else:
69
79
  return ""
70
80
 
81
+ @staticmethod
82
+ def base64encode(param):
83
+ value = base64.b64encode(param.encode('utf-8')).decode('utf-8')
84
+ return value
85
+
71
86
  @staticmethod
72
87
  def get_form_token(payload={}):
73
88
  return tina4_python.tina4_auth.get_token(payload)
@@ -435,9 +435,7 @@
435
435
  if (search) url.searchParams.set('search', search);
436
436
 
437
437
  loadPage(url.toString(), "crudTarget{{ table_name }}", () => {
438
- const params = new URLSearchParams(location.search);
439
- const currentPage = Math.max(1, Math.floor((parseInt(params.get('offset') || 0) / limit)) + 1);
440
- renderPagination(currentPage);
438
+ renderPagination(page);
441
439
  });
442
440
  };
443
441
 
File without changes