amsdal_crm 0.1.2__tar.gz → 0.1.3__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 (75) hide show
  1. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/PKG-INFO +1 -1
  2. amsdal_crm-0.1.3/amsdal_crm/__about__.py +1 -0
  3. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/lifecycle/consumer.py +2 -3
  4. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/account.py +3 -3
  5. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/contact.py +3 -3
  6. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/deal.py +2 -2
  7. amsdal_crm-0.1.2/amsdal_crm/__about__.py +0 -1
  8. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.amsdal/.environment +0 -0
  9. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.amsdal-cli +0 -0
  10. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.github/workflows/ci.yml +0 -0
  11. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.github/workflows/release.yml +0 -0
  12. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.github/workflows/tag_check.yml +0 -0
  13. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.gitignore +0 -0
  14. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/CLAUDE.md +0 -0
  15. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/README.md +0 -0
  16. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/RELEASE.md +0 -0
  17. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/Third-Party Materials - AMSDAL Dependencies - License Notices.md +0 -0
  18. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/__init__.py +0 -0
  19. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/app.py +0 -0
  20. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/constants.py +0 -0
  21. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/errors.py +0 -0
  22. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/fixtures/__init__.py +0 -0
  23. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/fixtures/permissions.py +0 -0
  24. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/fixtures/pipelines.py +0 -0
  25. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/lifecycle/__init__.py +0 -0
  26. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/migrations/0000_initial.py +0 -0
  27. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/__init__.py +0 -0
  28. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/activity.py +0 -0
  29. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/attachment.py +0 -0
  30. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/custom_field_definition.py +0 -0
  31. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/pipeline.py +0 -0
  32. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/stage.py +0 -0
  33. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/workflow_rule.py +0 -0
  34. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/__init__.py +0 -0
  35. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/activity_service.py +0 -0
  36. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/custom_field_service.py +0 -0
  37. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/deal_service.py +0 -0
  38. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/email_service.py +0 -0
  39. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/workflow_service.py +0 -0
  40. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/settings.py +0 -0
  41. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/config.yml +0 -0
  42. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/license_check.py +0 -0
  43. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/pyproject.toml +0 -0
  44. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/scripts/release.sh +0 -0
  45. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/scripts/tag_check.sh +0 -0
  46. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/conftest.py +0 -0
  47. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/__init__.py +0 -0
  48. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/conftest.py +0 -0
  49. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/services/__init__.py +0 -0
  50. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/services/test_deal_service.py +0 -0
  51. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/services/test_email_service.py +0 -0
  52. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/services/test_workflow_service.py +0 -0
  53. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/__init__.py +0 -0
  54. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/conftest.py +0 -0
  55. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/lifecycle/__init__.py +0 -0
  56. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/lifecycle/test_consumer.py +0 -0
  57. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/__init__.py +0 -0
  58. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_account.py +0 -0
  59. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_activity.py +0 -0
  60. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_contact.py +0 -0
  61. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_deal.py +0 -0
  62. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_pipeline.py +0 -0
  63. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_remaining.py +0 -0
  64. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_stage.py +0 -0
  65. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/__init__.py +0 -0
  66. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_activity_service.py +0 -0
  67. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_custom_field_service.py +0 -0
  68. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_deal_service.py +0 -0
  69. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_email_service.py +0 -0
  70. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_workflow_service.py +0 -0
  71. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/test_app.py +0 -0
  72. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/test_constants.py +0 -0
  73. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/test_errors.py +0 -0
  74. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/test_settings.py +0 -0
  75. {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amsdal_crm
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: amsdal-crm plugin for AMSDAL Framework
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: aiohttp==3.12.15
@@ -0,0 +1 @@
1
+ __version__ = '0.1.3'
@@ -98,9 +98,6 @@ def _add_custom_fields_to_control(control: dict[str, Any], custom_field_controls
98
98
  if 'controls' not in control:
99
99
  control['controls'] = []
100
100
 
101
- if 'control' in control:
102
- control.pop('control', None)
103
-
104
101
  # Find the custom_fields control and update it, or append custom fields at the end
105
102
  custom_fields_control = None
106
103
  for ctrl in control.get('controls', []):
@@ -112,6 +109,8 @@ def _add_custom_fields_to_control(control: dict[str, Any], custom_field_controls
112
109
  # Update the custom_fields control to be a group with nested controls
113
110
  custom_fields_control['type'] = 'group'
114
111
  custom_fields_control['controls'] = custom_field_controls
112
+ if 'control' in custom_fields_control:
113
+ custom_fields_control.pop('control', None)
115
114
  else:
116
115
  # Add custom fields as a new group at the end
117
116
  control['controls'].append(
@@ -89,7 +89,7 @@ class Account(TimestampMixin, Model):
89
89
  if self.custom_fields:
90
90
  from amsdal_crm.services.custom_field_service import CustomFieldService
91
91
 
92
- self.custom_fields = CustomFieldService.validate_custom_fields('Account', self.custom_fields)
92
+ self.custom_fields = await CustomFieldService.avalidate_custom_fields('Account', self.custom_fields)
93
93
  await super().apre_create()
94
94
 
95
95
  def pre_update(self) -> None:
@@ -109,7 +109,7 @@ class Account(TimestampMixin, Model):
109
109
  if self.custom_fields:
110
110
  from amsdal_crm.services.custom_field_service import CustomFieldService
111
111
 
112
- self.custom_fields = CustomFieldService.validate_custom_fields('Account', self.custom_fields)
112
+ self.custom_fields = await CustomFieldService.avalidate_custom_fields('Account', self.custom_fields)
113
113
 
114
114
  # Call parent to handle timestamps
115
115
  await super().apre_update()
@@ -124,4 +124,4 @@ class Account(TimestampMixin, Model):
124
124
  """Async hook called after updating account."""
125
125
  from amsdal_crm.services.workflow_service import WorkflowService
126
126
 
127
- WorkflowService.execute_rules('Account', 'update', self)
127
+ await WorkflowService.aexecute_rules('Account', 'update', self)
@@ -89,7 +89,7 @@ class Contact(TimestampMixin, Model):
89
89
  if self.custom_fields:
90
90
  from amsdal_crm.services.custom_field_service import CustomFieldService
91
91
 
92
- self.custom_fields = CustomFieldService.validate_custom_fields('Contact', self.custom_fields)
92
+ self.custom_fields = await CustomFieldService.avalidate_custom_fields('Contact', self.custom_fields)
93
93
  await super().apre_create()
94
94
 
95
95
  def pre_update(self) -> None:
@@ -109,7 +109,7 @@ class Contact(TimestampMixin, Model):
109
109
  if self.custom_fields:
110
110
  from amsdal_crm.services.custom_field_service import CustomFieldService
111
111
 
112
- self.custom_fields = CustomFieldService.validate_custom_fields('Contact', self.custom_fields)
112
+ self.custom_fields = await CustomFieldService.avalidate_custom_fields('Contact', self.custom_fields)
113
113
 
114
114
  # Call parent to handle timestamps
115
115
  await super().apre_update()
@@ -124,7 +124,7 @@ class Contact(TimestampMixin, Model):
124
124
  """Async hook called after updating contact."""
125
125
  from amsdal_crm.services.workflow_service import WorkflowService
126
126
 
127
- WorkflowService.execute_rules('Contact', 'update', self)
127
+ await WorkflowService.aexecute_rules('Contact', 'update', self)
128
128
 
129
129
 
130
130
  from amsdal_crm.models.account import Account
@@ -99,7 +99,7 @@ class Deal(TimestampMixin, Model):
99
99
  if self.custom_fields:
100
100
  from amsdal_crm.services.custom_field_service import CustomFieldService
101
101
 
102
- self.custom_fields = CustomFieldService.validate_custom_fields('Deal', self.custom_fields)
102
+ self.custom_fields = await CustomFieldService.avalidate_custom_fields('Deal', self.custom_fields)
103
103
  await super().apre_create()
104
104
 
105
105
  def pre_update(self) -> None:
@@ -137,7 +137,7 @@ class Deal(TimestampMixin, Model):
137
137
  if self.custom_fields:
138
138
  from amsdal_crm.services.custom_field_service import CustomFieldService
139
139
 
140
- self.custom_fields = CustomFieldService.validate_custom_fields('Deal', self.custom_fields)
140
+ self.custom_fields = await CustomFieldService.avalidate_custom_fields('Deal', self.custom_fields)
141
141
 
142
142
  # Load stage if it's a reference and sync closed status
143
143
  from amsdal_models.classes.helpers.reference_loader import ReferenceLoader
@@ -1 +0,0 @@
1
- __version__ = '0.1.2'
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