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.
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/PKG-INFO +1 -1
- amsdal_crm-0.1.3/amsdal_crm/__about__.py +1 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/lifecycle/consumer.py +2 -3
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/account.py +3 -3
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/contact.py +3 -3
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/deal.py +2 -2
- amsdal_crm-0.1.2/amsdal_crm/__about__.py +0 -1
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.amsdal/.environment +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.amsdal-cli +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.github/workflows/ci.yml +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.github/workflows/release.yml +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.github/workflows/tag_check.yml +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/.gitignore +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/CLAUDE.md +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/README.md +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/RELEASE.md +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/Third-Party Materials - AMSDAL Dependencies - License Notices.md +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/app.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/constants.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/errors.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/fixtures/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/fixtures/permissions.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/fixtures/pipelines.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/lifecycle/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/migrations/0000_initial.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/activity.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/attachment.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/custom_field_definition.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/pipeline.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/stage.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/models/workflow_rule.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/activity_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/custom_field_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/deal_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/email_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/services/workflow_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/amsdal_crm/settings.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/config.yml +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/license_check.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/pyproject.toml +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/scripts/release.sh +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/scripts/tag_check.sh +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/conftest.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/conftest.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/services/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/services/test_deal_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/services/test_email_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/integration/services/test_workflow_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/conftest.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/lifecycle/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/lifecycle/test_consumer.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_account.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_activity.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_contact.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_deal.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_pipeline.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_remaining.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/models/test_stage.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/__init__.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_activity_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_custom_field_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_deal_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_email_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/services/test_workflow_service.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/test_app.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/test_constants.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/test_errors.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/tests/unit/test_settings.py +0 -0
- {amsdal_crm-0.1.2 → amsdal_crm-0.1.3}/uv.lock +0 -0
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|