appier 1.34.8__tar.gz → 1.34.9__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 (108) hide show
  1. {appier-1.34.8/src/appier.egg-info → appier-1.34.9}/PKG-INFO +1 -1
  2. {appier-1.34.8 → appier-1.34.9}/setup.py +1 -1
  3. {appier-1.34.8 → appier-1.34.9}/src/appier/model.py +31 -12
  4. {appier-1.34.8 → appier-1.34.9/src/appier.egg-info}/PKG-INFO +1 -1
  5. {appier-1.34.8 → appier-1.34.9}/MANIFEST.in +0 -0
  6. {appier-1.34.8 → appier-1.34.9}/README.rst +0 -0
  7. {appier-1.34.8 → appier-1.34.9}/pyproject.toml +0 -0
  8. {appier-1.34.8 → appier-1.34.9}/setup.cfg +0 -0
  9. {appier-1.34.8 → appier-1.34.9}/src/appier/__init__.py +0 -0
  10. {appier-1.34.8 → appier-1.34.9}/src/appier/amqp.py +0 -0
  11. {appier-1.34.8 → appier-1.34.9}/src/appier/api.py +0 -0
  12. {appier-1.34.8 → appier-1.34.9}/src/appier/asgi.py +0 -0
  13. {appier-1.34.8 → appier-1.34.9}/src/appier/async_neo.py +0 -0
  14. {appier-1.34.8 → appier-1.34.9}/src/appier/async_old.py +0 -0
  15. {appier-1.34.8 → appier-1.34.9}/src/appier/asynchronous.py +0 -0
  16. {appier-1.34.8 → appier-1.34.9}/src/appier/asynchronous.pyi +0 -0
  17. {appier-1.34.8 → appier-1.34.9}/src/appier/base.py +0 -0
  18. {appier-1.34.8 → appier-1.34.9}/src/appier/base.pyi +0 -0
  19. {appier-1.34.8 → appier-1.34.9}/src/appier/bus.py +0 -0
  20. {appier-1.34.8 → appier-1.34.9}/src/appier/bus.pyi +0 -0
  21. {appier-1.34.8 → appier-1.34.9}/src/appier/cache.py +0 -0
  22. {appier-1.34.8 → appier-1.34.9}/src/appier/cache.pyi +0 -0
  23. {appier-1.34.8 → appier-1.34.9}/src/appier/common.py +0 -0
  24. {appier-1.34.8 → appier-1.34.9}/src/appier/component.py +0 -0
  25. {appier-1.34.8 → appier-1.34.9}/src/appier/component.pyi +0 -0
  26. {appier-1.34.8 → appier-1.34.9}/src/appier/compress.py +0 -0
  27. {appier-1.34.8 → appier-1.34.9}/src/appier/config.py +0 -0
  28. {appier-1.34.8 → appier-1.34.9}/src/appier/controller.py +0 -0
  29. {appier-1.34.8 → appier-1.34.9}/src/appier/crypt.py +0 -0
  30. {appier-1.34.8 → appier-1.34.9}/src/appier/data.py +0 -0
  31. {appier-1.34.8 → appier-1.34.9}/src/appier/data.pyi +0 -0
  32. {appier-1.34.8 → appier-1.34.9}/src/appier/defines.py +0 -0
  33. {appier-1.34.8 → appier-1.34.9}/src/appier/exceptions.py +0 -0
  34. {appier-1.34.8 → appier-1.34.9}/src/appier/execution.py +0 -0
  35. {appier-1.34.8 → appier-1.34.9}/src/appier/export.py +0 -0
  36. {appier-1.34.8 → appier-1.34.9}/src/appier/extra.py +0 -0
  37. {appier-1.34.8 → appier-1.34.9}/src/appier/extra_neo.py +0 -0
  38. {appier-1.34.8 → appier-1.34.9}/src/appier/extra_old.py +0 -0
  39. {appier-1.34.8 → appier-1.34.9}/src/appier/geo.py +0 -0
  40. {appier-1.34.8 → appier-1.34.9}/src/appier/git.py +0 -0
  41. {appier-1.34.8 → appier-1.34.9}/src/appier/graph.py +0 -0
  42. {appier-1.34.8 → appier-1.34.9}/src/appier/http.py +0 -0
  43. {appier-1.34.8 → appier-1.34.9}/src/appier/legacy.py +0 -0
  44. {appier-1.34.8 → appier-1.34.9}/src/appier/log.py +0 -0
  45. {appier-1.34.8 → appier-1.34.9}/src/appier/meta.py +0 -0
  46. {appier-1.34.8 → appier-1.34.9}/src/appier/mock.py +0 -0
  47. {appier-1.34.8 → appier-1.34.9}/src/appier/model.pyi +0 -0
  48. {appier-1.34.8 → appier-1.34.9}/src/appier/model_a.py +0 -0
  49. {appier-1.34.8 → appier-1.34.9}/src/appier/mongo.py +0 -0
  50. {appier-1.34.8 → appier-1.34.9}/src/appier/observer.py +0 -0
  51. {appier-1.34.8 → appier-1.34.9}/src/appier/part.py +0 -0
  52. {appier-1.34.8 → appier-1.34.9}/src/appier/part.pyi +0 -0
  53. {appier-1.34.8 → appier-1.34.9}/src/appier/preferences.py +0 -0
  54. {appier-1.34.8 → appier-1.34.9}/src/appier/preferences.pyi +0 -0
  55. {appier-1.34.8 → appier-1.34.9}/src/appier/queuing.py +0 -0
  56. {appier-1.34.8 → appier-1.34.9}/src/appier/redisdb.py +0 -0
  57. {appier-1.34.8 → appier-1.34.9}/src/appier/request.py +0 -0
  58. {appier-1.34.8 → appier-1.34.9}/src/appier/res/static/css/base.css +0 -0
  59. {appier-1.34.8 → appier-1.34.9}/src/appier/res/static/images/favicon.ico +0 -0
  60. {appier-1.34.8 → appier-1.34.9}/src/appier/res/static/js/base.js +0 -0
  61. {appier-1.34.8 → appier-1.34.9}/src/appier/res/templates/error.html.tpl +0 -0
  62. {appier-1.34.8 → appier-1.34.9}/src/appier/res/templates/holder.html.tpl +0 -0
  63. {appier-1.34.8 → appier-1.34.9}/src/appier/res/templates/layout.html.tpl +0 -0
  64. {appier-1.34.8 → appier-1.34.9}/src/appier/scheduler.py +0 -0
  65. {appier-1.34.8 → appier-1.34.9}/src/appier/scheduler.pyi +0 -0
  66. {appier-1.34.8 → appier-1.34.9}/src/appier/serialize.py +0 -0
  67. {appier-1.34.8 → appier-1.34.9}/src/appier/session.py +0 -0
  68. {appier-1.34.8 → appier-1.34.9}/src/appier/session.pyi +0 -0
  69. {appier-1.34.8 → appier-1.34.9}/src/appier/settings.py +0 -0
  70. {appier-1.34.8 → appier-1.34.9}/src/appier/smtp.py +0 -0
  71. {appier-1.34.8 → appier-1.34.9}/src/appier/storage.py +0 -0
  72. {appier-1.34.8 → appier-1.34.9}/src/appier/structures.py +0 -0
  73. {appier-1.34.8 → appier-1.34.9}/src/appier/test/__init__.py +0 -0
  74. {appier-1.34.8 → appier-1.34.9}/src/appier/test/base.py +0 -0
  75. {appier-1.34.8 → appier-1.34.9}/src/appier/test/cache.py +0 -0
  76. {appier-1.34.8 → appier-1.34.9}/src/appier/test/config.py +0 -0
  77. {appier-1.34.8 → appier-1.34.9}/src/appier/test/crypt.py +0 -0
  78. {appier-1.34.8 → appier-1.34.9}/src/appier/test/data.py +0 -0
  79. {appier-1.34.8 → appier-1.34.9}/src/appier/test/error_handler.py +0 -0
  80. {appier-1.34.8 → appier-1.34.9}/src/appier/test/exception_handler.py +0 -0
  81. {appier-1.34.8 → appier-1.34.9}/src/appier/test/exceptions.py +0 -0
  82. {appier-1.34.8 → appier-1.34.9}/src/appier/test/export.py +0 -0
  83. {appier-1.34.8 → appier-1.34.9}/src/appier/test/graph.py +0 -0
  84. {appier-1.34.8 → appier-1.34.9}/src/appier/test/http.py +0 -0
  85. {appier-1.34.8 → appier-1.34.9}/src/appier/test/legacy.py +0 -0
  86. {appier-1.34.8 → appier-1.34.9}/src/appier/test/log.py +0 -0
  87. {appier-1.34.8 → appier-1.34.9}/src/appier/test/mock.py +0 -0
  88. {appier-1.34.8 → appier-1.34.9}/src/appier/test/model.py +0 -0
  89. {appier-1.34.8 → appier-1.34.9}/src/appier/test/part.py +0 -0
  90. {appier-1.34.8 → appier-1.34.9}/src/appier/test/preferences.py +0 -0
  91. {appier-1.34.8 → appier-1.34.9}/src/appier/test/queuing.py +0 -0
  92. {appier-1.34.8 → appier-1.34.9}/src/appier/test/request.py +0 -0
  93. {appier-1.34.8 → appier-1.34.9}/src/appier/test/scheduler.py +0 -0
  94. {appier-1.34.8 → appier-1.34.9}/src/appier/test/serialize.py +0 -0
  95. {appier-1.34.8 → appier-1.34.9}/src/appier/test/session.py +0 -0
  96. {appier-1.34.8 → appier-1.34.9}/src/appier/test/smtp.py +0 -0
  97. {appier-1.34.8 → appier-1.34.9}/src/appier/test/structures.py +0 -0
  98. {appier-1.34.8 → appier-1.34.9}/src/appier/test/tags.py +0 -0
  99. {appier-1.34.8 → appier-1.34.9}/src/appier/test/typesf.py +0 -0
  100. {appier-1.34.8 → appier-1.34.9}/src/appier/test/util.py +0 -0
  101. {appier-1.34.8 → appier-1.34.9}/src/appier/test/validation.py +0 -0
  102. {appier-1.34.8 → appier-1.34.9}/src/appier/typesf.py +0 -0
  103. {appier-1.34.8 → appier-1.34.9}/src/appier/util.py +0 -0
  104. {appier-1.34.8 → appier-1.34.9}/src/appier/validation.py +0 -0
  105. {appier-1.34.8 → appier-1.34.9}/src/appier.egg-info/SOURCES.txt +0 -0
  106. {appier-1.34.8 → appier-1.34.9}/src/appier.egg-info/dependency_links.txt +0 -0
  107. {appier-1.34.8 → appier-1.34.9}/src/appier.egg-info/not-zip-safe +0 -0
  108. {appier-1.34.8 → appier-1.34.9}/src/appier.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: appier
3
- Version: 1.34.8
3
+ Version: 1.34.9
4
4
  Summary: Appier Framework
5
5
  Home-page: http://appier.hive.pt
6
6
  Author: Hive Solutions Lda.
@@ -44,7 +44,7 @@ def read_file(path):
44
44
 
45
45
  setuptools.setup(
46
46
  name="appier",
47
- version="1.34.8",
47
+ version="1.34.9",
48
48
  author="Hive Solutions Lda.",
49
49
  author_email="development@hive.pt",
50
50
  description="Appier Framework",
@@ -661,26 +661,38 @@ class Model(legacy.with_meta(meta.Ordered, observer.Observable, *EXTRA_CLS)):
661
661
  # this is going to be used for operations on the parameters
662
662
  request = common.base().get_request()
663
663
 
664
- # counts the total number of references according to the
664
+ # counts the total number of entities according to the
665
665
  # current filter value and then uses this value together
666
- # with the skip value to calculate both the number of pages
666
+ # with the limit value to calculate both the number of pages
667
667
  # available for the current filter and the current page index
668
668
  # (note that the index is one index based)
669
669
  total = cls.count(*args, **kwargs)
670
- count = total / float(limit)
671
- count = math.ceil(count)
672
- count = int(count)
673
670
  index = skip / float(limit)
674
671
  index = math.floor(index)
675
672
  index = int(index) + 1
676
673
 
677
- # calculates the proper size of the current page being requested
678
- # taking into account the total number of values and the limit
679
- size = total % limit if index == count else limit
680
- if size == 0 and total > 0:
681
- size = limit
682
- if total == 0:
683
- size = 0
674
+ # forks logic for continuous and discrete paging, they
675
+ # require different calculations for the number of pages and
676
+ # the size of the current page
677
+ if total == None:
678
+ # sets the values to None in case the count is None
679
+ # because there's no way to calculate the number of pages
680
+ # for the model provider
681
+ count, size = None, None
682
+ else:
683
+ # calculates both the number of pages that are available
684
+ # for the current entity
685
+ count = total / float(limit)
686
+ count = math.ceil(count)
687
+ count = int(count)
688
+
689
+ # calculates the proper size of the current page being requested
690
+ # taking into account the total number of values and the limit
691
+ size = total % limit if index == count else limit
692
+ if size == 0 and total > 0:
693
+ size = limit
694
+ if total == 0:
695
+ size = 0
684
696
 
685
697
  # creates the base structure for the page populating with the
686
698
  # base values that may be used for display of the page
@@ -695,6 +707,8 @@ class Model(legacy.with_meta(meta.Ordered, observer.Observable, *EXTRA_CLS)):
695
707
  direction=request.params_f.get("direction", "descending"),
696
708
  )
697
709
 
710
+ # generates the query string for the context provided as keyword
711
+ # arguments, this can be used to generating sorting links for instance
698
712
  def generate(**kwargs):
699
713
  # creates the linear parameters list that is going to hold multiple
700
714
  # key and value tuple representing the multiple parameters
@@ -1760,6 +1774,11 @@ class Model(legacy.with_meta(meta.Ordered, observer.Observable, *EXTRA_CLS)):
1760
1774
  collection = adapter.collection_a(name)
1761
1775
  return collection
1762
1776
 
1777
+ @classmethod
1778
+ def _object_id(cls, value=None):
1779
+ adapter = cls._adapter()
1780
+ return adapter.object_id(value=value)
1781
+
1763
1782
  @classmethod
1764
1783
  def _name(cls):
1765
1784
  # retrieves the class object for the current instance and then
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: appier
3
- Version: 1.34.8
3
+ Version: 1.34.9
4
4
  Summary: Appier Framework
5
5
  Home-page: http://appier.hive.pt
6
6
  Author: Hive Solutions Lda.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes