django-cfg 1.2.9__py3-none-any.whl → 1.2.11__py3-none-any.whl
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.
- django_cfg/__init__.py +1 -1
- django_cfg/apps/accounts/migrations/0007_twilioresponse.py +126 -0
- django_cfg/cli/README.md +2 -2
- django_cfg/cli/commands/create_project.py +1 -1
- django_cfg/cli/commands/info.py +1 -1
- django_cfg/modules/django_llm/llm/client.py +2 -2
- django_cfg/modules/django_unfold/dashboard.py +3 -0
- django_cfg-1.2.11.dist-info/METADATA +554 -0
- {django_cfg-1.2.9.dist-info → django_cfg-1.2.11.dist-info}/RECORD +12 -11
- django_cfg-1.2.9.dist-info/METADATA +0 -1277
- {django_cfg-1.2.9.dist-info → django_cfg-1.2.11.dist-info}/WHEEL +0 -0
- {django_cfg-1.2.9.dist-info → django_cfg-1.2.11.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.2.9.dist-info → django_cfg-1.2.11.dist-info}/licenses/LICENSE +0 -0
django_cfg/__init__.py
CHANGED
@@ -0,0 +1,126 @@
|
|
1
|
+
# Generated by Django 5.2.6 on 2025-09-21 12:49
|
2
|
+
|
3
|
+
import django.db.models.deletion
|
4
|
+
from django.db import migrations, models
|
5
|
+
|
6
|
+
|
7
|
+
class Migration(migrations.Migration):
|
8
|
+
dependencies = [
|
9
|
+
("django_cfg_accounts", "0006_remove_twilioresponse_otp_secret_and_more"),
|
10
|
+
]
|
11
|
+
|
12
|
+
operations = [
|
13
|
+
migrations.CreateModel(
|
14
|
+
name="TwilioResponse",
|
15
|
+
fields=[
|
16
|
+
(
|
17
|
+
"id",
|
18
|
+
models.BigAutoField(
|
19
|
+
auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
|
20
|
+
),
|
21
|
+
),
|
22
|
+
(
|
23
|
+
"response_type",
|
24
|
+
models.CharField(
|
25
|
+
choices=[
|
26
|
+
("api_send", "API Send Request"),
|
27
|
+
("api_verify", "API Verify Request"),
|
28
|
+
("webhook_status", "Webhook Status Update"),
|
29
|
+
("webhook_delivery", "Webhook Delivery Report"),
|
30
|
+
],
|
31
|
+
max_length=20,
|
32
|
+
),
|
33
|
+
),
|
34
|
+
(
|
35
|
+
"service_type",
|
36
|
+
models.CharField(
|
37
|
+
choices=[
|
38
|
+
("whatsapp", "WhatsApp"),
|
39
|
+
("sms", "SMS"),
|
40
|
+
("voice", "Voice"),
|
41
|
+
("email", "Email"),
|
42
|
+
("verify", "Verify API"),
|
43
|
+
],
|
44
|
+
max_length=10,
|
45
|
+
),
|
46
|
+
),
|
47
|
+
(
|
48
|
+
"message_sid",
|
49
|
+
models.CharField(blank=True, help_text="Twilio Message SID", max_length=34),
|
50
|
+
),
|
51
|
+
(
|
52
|
+
"verification_sid",
|
53
|
+
models.CharField(
|
54
|
+
blank=True, help_text="Twilio Verification SID", max_length=34
|
55
|
+
),
|
56
|
+
),
|
57
|
+
(
|
58
|
+
"request_data",
|
59
|
+
models.JSONField(default=dict, help_text="Original request parameters"),
|
60
|
+
),
|
61
|
+
("response_data", models.JSONField(default=dict, help_text="Twilio API response")),
|
62
|
+
(
|
63
|
+
"status",
|
64
|
+
models.CharField(
|
65
|
+
blank=True, help_text="Message/Verification status", max_length=20
|
66
|
+
),
|
67
|
+
),
|
68
|
+
(
|
69
|
+
"error_code",
|
70
|
+
models.CharField(blank=True, help_text="Twilio error code", max_length=10),
|
71
|
+
),
|
72
|
+
("error_message", models.TextField(blank=True, help_text="Error description")),
|
73
|
+
(
|
74
|
+
"to_number",
|
75
|
+
models.CharField(blank=True, help_text="Recipient phone/email", max_length=20),
|
76
|
+
),
|
77
|
+
(
|
78
|
+
"from_number",
|
79
|
+
models.CharField(blank=True, help_text="Sender phone/email", max_length=20),
|
80
|
+
),
|
81
|
+
(
|
82
|
+
"price",
|
83
|
+
models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True),
|
84
|
+
),
|
85
|
+
(
|
86
|
+
"price_unit",
|
87
|
+
models.CharField(blank=True, help_text="Currency code", max_length=3),
|
88
|
+
),
|
89
|
+
("created_at", models.DateTimeField(auto_now_add=True)),
|
90
|
+
("updated_at", models.DateTimeField(auto_now=True)),
|
91
|
+
(
|
92
|
+
"twilio_created_at",
|
93
|
+
models.DateTimeField(blank=True, help_text="Timestamp from Twilio", null=True),
|
94
|
+
),
|
95
|
+
(
|
96
|
+
"otp_secret",
|
97
|
+
models.ForeignKey(
|
98
|
+
blank=True,
|
99
|
+
help_text="Related OTP if applicable",
|
100
|
+
null=True,
|
101
|
+
on_delete=django.db.models.deletion.SET_NULL,
|
102
|
+
related_name="twilio_responses",
|
103
|
+
to="django_cfg_accounts.otpsecret",
|
104
|
+
),
|
105
|
+
),
|
106
|
+
],
|
107
|
+
options={
|
108
|
+
"verbose_name": "Twilio Response",
|
109
|
+
"verbose_name_plural": "Twilio Responses",
|
110
|
+
"ordering": ["-created_at"],
|
111
|
+
"indexes": [
|
112
|
+
models.Index(fields=["message_sid"], name="django_cfg__message_c37dcd_idx"),
|
113
|
+
models.Index(
|
114
|
+
fields=["verification_sid"], name="django_cfg__verific_7de689_idx"
|
115
|
+
),
|
116
|
+
models.Index(
|
117
|
+
fields=["status", "created_at"], name="django_cfg__status_95d8c8_idx"
|
118
|
+
),
|
119
|
+
models.Index(
|
120
|
+
fields=["response_type", "service_type"],
|
121
|
+
name="django_cfg__respons_20ca26_idx",
|
122
|
+
),
|
123
|
+
],
|
124
|
+
},
|
125
|
+
),
|
126
|
+
]
|
django_cfg/cli/README.md
CHANGED
@@ -506,9 +506,9 @@ print(f"Django installed: {deps['django']}")
|
|
506
506
|
## 📚 Documentation
|
507
507
|
|
508
508
|
- **Django CFG**: https://djangocfg.com
|
509
|
-
- **GitHub**: https://github.com/
|
509
|
+
- **GitHub**: https://github.com/reformsai/django-cfg
|
510
510
|
- **PyPI**: https://pypi.org/project/django-cfg/
|
511
|
-
- **Examples**: https://github.com/
|
511
|
+
- **Examples**: https://github.com/reformsai/django-cfg/tree/main/examples
|
512
512
|
|
513
513
|
## 📄 License
|
514
514
|
|
@@ -257,7 +257,7 @@ python manage.py translate_content
|
|
257
257
|
## 🤝 Contributing
|
258
258
|
|
259
259
|
This project uses **django-cfg** for configuration management.
|
260
|
-
For more information, visit: [https://github.com/
|
260
|
+
For more information, visit: [https://github.com/reformsai/django-cfg](https://github.com/reformsai/django-cfg)
|
261
261
|
|
262
262
|
## 📄 License
|
263
263
|
|
django_cfg/cli/commands/info.py
CHANGED
@@ -120,7 +120,7 @@ def info(verbose: bool):
|
|
120
120
|
click.echo(" pip install twilio sendgrid django-unfold")
|
121
121
|
click.echo()
|
122
122
|
click.echo("📚 Documentation: https://djangocfg.com")
|
123
|
-
click.echo("🐙 GitHub: https://github.com/
|
123
|
+
click.echo("🐙 GitHub: https://github.com/reformsai/django-cfg")
|
124
124
|
|
125
125
|
# Warnings for missing critical dependencies
|
126
126
|
missing_critical = [dep for dep in ["django", "pydantic"] if not deps.get(dep, False)]
|
@@ -170,7 +170,7 @@ class LLMClient(BaseCfgModule):
|
|
170
170
|
config = base_configs[self.provider].copy()
|
171
171
|
|
172
172
|
site_url = getattr(self.django_config, 'site_url', 'https://djangocfg.com')
|
173
|
-
project_name = getattr(self.django_config, 'project_name', '
|
173
|
+
project_name = getattr(self.django_config, 'project_name', 'Django CFG LLM Client')
|
174
174
|
|
175
175
|
# Get headers from django config if available
|
176
176
|
if self.django_config:
|
@@ -205,7 +205,7 @@ class LLMClient(BaseCfgModule):
|
|
205
205
|
if self.django_config:
|
206
206
|
try:
|
207
207
|
site_url = getattr(self.django_config, 'site_url', 'http://localhost:8000')
|
208
|
-
project_name = getattr(self.django_config, 'project_name', 'Django CFG
|
208
|
+
project_name = getattr(self.django_config, 'project_name', 'Django CFG')
|
209
209
|
headers.update({
|
210
210
|
"HTTP-Referer": site_url,
|
211
211
|
"X-Title": project_name
|
@@ -127,6 +127,9 @@ class DashboardManager(BaseCfgModule):
|
|
127
127
|
NavigationItem(title="Document Categories", icon=Icons.FOLDER, link="/admin/django_cfg_knowbase/documentcategory/"),
|
128
128
|
NavigationItem(title="Documents", icon=Icons.DESCRIPTION, link="/admin/django_cfg_knowbase/document/"),
|
129
129
|
NavigationItem(title="Document Chunks", icon=Icons.TEXT_SNIPPET, link="/admin/django_cfg_knowbase/documentchunk/"),
|
130
|
+
NavigationItem(title="Document Archives", icon=Icons.ARCHIVE, link="/admin/django_cfg_knowbase/documentarchive/"),
|
131
|
+
NavigationItem(title="Archive Items", icon=Icons.FOLDER_OPEN, link="/admin/django_cfg_knowbase/archiveitem/"),
|
132
|
+
NavigationItem(title="Archive Item Chunks", icon=Icons.SNIPPET_FOLDER, link="/admin/django_cfg_knowbase/archiveitemchunk/"),
|
130
133
|
NavigationItem(title="External Data", icon=Icons.CLOUD_SYNC, link="/admin/django_cfg_knowbase/externaldata/"),
|
131
134
|
NavigationItem(title="External Data Chunks", icon=Icons.AUTO_AWESOME_MOTION, link="/admin/django_cfg_knowbase/externaldatachunk/"),
|
132
135
|
NavigationItem(title="Chat Sessions", icon=Icons.CHAT, link="/admin/django_cfg_knowbase/chatsession/"),
|