tina4-python 0.2.128__tar.gz → 0.2.130__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.128 → tina4_python-0.2.130}/PKG-INFO +1 -1
  2. {tina4_python-0.2.128 → tina4_python-0.2.130}/pyproject.toml +1 -1
  3. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/CRUD.py +9 -0
  4. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Database.py +6 -2
  5. {tina4_python-0.2.128 → tina4_python-0.2.130}/.gitignore +0 -0
  6. {tina4_python-0.2.128 → tina4_python-0.2.130}/README.md +0 -0
  7. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Auth.py +0 -0
  8. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Constant.py +0 -0
  9. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/DatabaseResult.py +0 -0
  10. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/DatabaseTypes.py +0 -0
  11. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Debug.py +0 -0
  12. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Env.py +0 -0
  13. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/HtmlElement.py +0 -0
  14. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Localization.py +0 -0
  15. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Messages.py +0 -0
  16. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/MiddleWare.py +0 -0
  17. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Migration.py +0 -0
  18. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/ORM.py +0 -0
  19. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Queue.py +0 -0
  20. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Request.py +0 -0
  21. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Response.py +0 -0
  22. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Router.py +0 -0
  23. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Session.py +0 -0
  24. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/ShellColors.py +0 -0
  25. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Swagger.py +0 -0
  26. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Template.py +0 -0
  27. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Webserver.py +0 -0
  28. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/Websocket.py +0 -0
  29. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/__init__.py +0 -0
  30. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/messages.pot +0 -0
  31. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/css/readme.md +0 -0
  32. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/favicon.ico +0 -0
  33. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/images/403.png +0 -0
  34. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/images/404.png +0 -0
  35. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/images/500.png +0 -0
  36. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/images/logo.png +0 -0
  37. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/images/readme.md +0 -0
  38. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/js/readme.md +0 -0
  39. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/js/reconnecting-websocket.js +0 -0
  40. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/js/tina4helper.js +0 -0
  41. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/swagger/index.html +0 -0
  42. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/public/swagger/oauth2-redirect.html +0 -0
  43. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/templates/components/crud.twig +0 -0
  44. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/templates/errors/403.twig +0 -0
  45. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/templates/errors/404.twig +0 -0
  46. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/templates/errors/500.twig +0 -0
  47. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/templates/readme.md +0 -0
  48. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/translations/en/LC_MESSAGES/messages.mo +0 -0
  49. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/translations/en/LC_MESSAGES/messages.po +0 -0
  50. {tina4_python-0.2.128 → tina4_python-0.2.130}/tina4_python/translations/fr/LC_MESSAGES/messages.mo +0 -0
  51. {tina4_python-0.2.128 → tina4_python-0.2.130}/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.128
3
+ Version: 0.2.130
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.128"
3
+ version = "0.2.130"
4
4
  description = "Tina4Python - This is not another framework for Python"
5
5
  authors = [
6
6
  {name = "Andre van Zuydam",email = "andrevanzuydam@gmail.com"}
@@ -23,6 +23,7 @@ class CRUD:
23
23
  self.total_count = 0
24
24
  self.sql = None
25
25
  self.error = ""
26
+ self.table_name = None
26
27
 
27
28
  def strip_sql_pagination(self, sql: str) -> str:
28
29
  """
@@ -110,6 +111,10 @@ class CRUD:
110
111
  :param query:
111
112
  :return:
112
113
  """
114
+
115
+ if self.table_name is not None:
116
+ return self.table_name
117
+
113
118
  # Remove LIMIT and everything after
114
119
  query = re.sub(r'\s+LIMIT\s+.*$', '', query, flags=re.I)
115
120
  # Find the innermost FROM table (non-subquery)
@@ -142,6 +147,10 @@ class CRUD:
142
147
 
143
148
  def to_crud(self, request, options=None):
144
149
  table_name = self.get_table_name(self.sql)
150
+
151
+ if table_name is not None and self.table_name is None:
152
+ self.table_name = table_name
153
+
145
154
  table_nice_name = Template.get_nice_label(table_name)
146
155
 
147
156
  if options is None:
@@ -289,11 +289,15 @@ class Database:
289
289
  cols.append(name)
290
290
 
291
291
  if cols:
292
- like_op = "ILIKE" if self.database_engine == "POSTGRES" else "LIKE"
292
+ if self.database_engine == "POSTGRES":
293
+ like_op = "LIKE"
294
+ else:
295
+ like_op = "LIKE"
296
+
293
297
  conditions = []
294
298
  for col in cols:
295
299
  col_name = f'"{col}"' if " " not in col else col
296
- conditions.append(f"{col_name} {like_op} ?")
300
+ conditions.append(f"cast({col_name} as varchar(1000)) {like_op} ?")
297
301
  final_params.append(f"%{search}%")
298
302
 
299
303
  where_clause = " WHERE (" + " OR ".join(conditions) + ")"
File without changes