django-cfg 1.3.9__py3-none-any.whl → 1.3.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.
Files changed (187) hide show
  1. django_cfg/__init__.py +1 -1
  2. django_cfg/apps/payments/admin/networks_admin.py +12 -1
  3. django_cfg/apps/payments/admin/payments_admin.py +13 -0
  4. django_cfg/apps/payments/admin_interface/serializers/payment_serializers.py +62 -14
  5. django_cfg/apps/payments/admin_interface/templates/payments/components/payment_card.html +121 -0
  6. django_cfg/apps/payments/admin_interface/templates/payments/components/payment_qr_code.html +95 -0
  7. django_cfg/apps/payments/admin_interface/templates/payments/components/progress_bar.html +37 -0
  8. django_cfg/apps/payments/admin_interface/templates/payments/components/provider_stats.html +60 -0
  9. django_cfg/apps/payments/admin_interface/templates/payments/components/status_badge.html +41 -0
  10. django_cfg/apps/payments/admin_interface/templates/payments/components/status_overview.html +83 -0
  11. django_cfg/apps/payments/admin_interface/templates/payments/payment_detail.html +363 -0
  12. django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html +33 -3
  13. django_cfg/apps/payments/admin_interface/views/api/payments.py +102 -0
  14. django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +96 -45
  15. django_cfg/apps/payments/admin_interface/views/forms.py +5 -1
  16. django_cfg/apps/payments/config/__init__.py +14 -15
  17. django_cfg/apps/payments/config/django_cfg_integration.py +59 -1
  18. django_cfg/apps/payments/config/helpers.py +8 -13
  19. django_cfg/apps/payments/migrations/0001_initial.py +33 -46
  20. django_cfg/apps/payments/migrations/0002_rename_payments_un_user_id_7f6e79_idx_payments_un_user_id_8ce187_idx_and_more.py +46 -0
  21. django_cfg/apps/payments/migrations/0003_universalpayment_status_changed_at.py +25 -0
  22. django_cfg/apps/payments/models/managers/payment_managers.py +142 -25
  23. django_cfg/apps/payments/models/payments.py +94 -0
  24. django_cfg/apps/payments/services/core/base.py +4 -4
  25. django_cfg/apps/payments/services/core/payment_service.py +265 -38
  26. django_cfg/apps/payments/services/providers/base.py +209 -3
  27. django_cfg/apps/payments/services/providers/models/__init__.py +2 -0
  28. django_cfg/apps/payments/services/providers/models/base.py +25 -2
  29. django_cfg/apps/payments/services/providers/nowpayments/models.py +2 -2
  30. django_cfg/apps/payments/services/providers/nowpayments/provider.py +57 -9
  31. django_cfg/apps/payments/services/providers/registry.py +5 -5
  32. django_cfg/apps/payments/services/types/requests.py +19 -7
  33. django_cfg/apps/payments/signals/payment_signals.py +31 -2
  34. django_cfg/apps/payments/static/payments/js/api-client.js +6 -1
  35. django_cfg/apps/payments/static/payments/js/payment-detail.js +167 -0
  36. django_cfg/apps/payments/static/payments/js/payment-form.js +35 -26
  37. django_cfg/apps/payments/templatetags/payment_tags.py +8 -0
  38. django_cfg/apps/payments/urls.py +3 -2
  39. django_cfg/apps/payments/views/api/currencies.py +3 -0
  40. django_cfg/apps/payments/views/serializers/currencies.py +18 -5
  41. django_cfg/apps/tasks/admin/tasks_admin.py +2 -2
  42. django_cfg/apps/tasks/static/tasks/css/dashboard.css +68 -217
  43. django_cfg/apps/tasks/static/tasks/js/api.js +40 -84
  44. django_cfg/apps/tasks/static/tasks/js/components/DataManager.js +24 -0
  45. django_cfg/apps/tasks/static/tasks/js/components/TabManager.js +85 -0
  46. django_cfg/apps/tasks/static/tasks/js/components/TaskRenderer.js +216 -0
  47. django_cfg/apps/tasks/static/tasks/js/dashboard/main.mjs +245 -0
  48. django_cfg/apps/tasks/static/tasks/js/dashboard/overview.mjs +123 -0
  49. django_cfg/apps/tasks/static/tasks/js/dashboard/queues.mjs +120 -0
  50. django_cfg/apps/tasks/static/tasks/js/dashboard/tasks.mjs +350 -0
  51. django_cfg/apps/tasks/static/tasks/js/dashboard/workers.mjs +169 -0
  52. django_cfg/apps/tasks/tasks/__init__.py +10 -0
  53. django_cfg/apps/tasks/tasks/demo_tasks.py +133 -0
  54. django_cfg/apps/tasks/templates/tasks/components/management_actions.html +42 -45
  55. django_cfg/apps/tasks/templates/tasks/components/{status_cards.html → overview_content.html} +30 -11
  56. django_cfg/apps/tasks/templates/tasks/components/queues_content.html +19 -0
  57. django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html +16 -10
  58. django_cfg/apps/tasks/templates/tasks/components/tasks_content.html +51 -0
  59. django_cfg/apps/tasks/templates/tasks/components/workers_content.html +30 -0
  60. django_cfg/apps/tasks/templates/tasks/layout/base.html +117 -0
  61. django_cfg/apps/tasks/templates/tasks/pages/dashboard.html +82 -0
  62. django_cfg/apps/tasks/templates/tasks/partials/task_row_template.html +40 -0
  63. django_cfg/apps/tasks/templates/tasks/widgets/task_filters.html +37 -0
  64. django_cfg/apps/tasks/templates/tasks/widgets/task_footer.html +41 -0
  65. django_cfg/apps/tasks/templates/tasks/widgets/task_table.html +50 -0
  66. django_cfg/apps/tasks/urls.py +2 -2
  67. django_cfg/apps/tasks/urls_admin.py +2 -2
  68. django_cfg/apps/tasks/utils/__init__.py +1 -0
  69. django_cfg/apps/tasks/utils/simulator.py +356 -0
  70. django_cfg/apps/tasks/views/__init__.py +16 -0
  71. django_cfg/apps/tasks/views/api.py +569 -0
  72. django_cfg/apps/tasks/views/dashboard.py +58 -0
  73. django_cfg/core/integration/__init__.py +21 -0
  74. django_cfg/management/commands/rundramatiq_simulator.py +430 -0
  75. django_cfg/models/constance.py +0 -11
  76. django_cfg/models/payments.py +137 -3
  77. django_cfg/modules/django_tasks.py +54 -21
  78. django_cfg/registry/core.py +4 -9
  79. django_cfg/template_archive/django_sample.zip +0 -0
  80. {django_cfg-1.3.9.dist-info → django_cfg-1.3.11.dist-info}/METADATA +2 -2
  81. {django_cfg-1.3.9.dist-info → django_cfg-1.3.11.dist-info}/RECORD +84 -152
  82. django_cfg/apps/payments/config/constance/__init__.py +0 -22
  83. django_cfg/apps/payments/config/constance/config_service.py +0 -123
  84. django_cfg/apps/payments/config/constance/fields.py +0 -69
  85. django_cfg/apps/payments/config/constance/settings.py +0 -160
  86. django_cfg/apps/payments/migrations/0002_currency_usd_rate_currency_usd_rate_updated_at.py +0 -26
  87. django_cfg/apps/payments/migrations/0003_remove_provider_currency_fields.py +0 -28
  88. django_cfg/apps/payments/migrations/0004_add_reserved_usd_field.py +0 -30
  89. django_cfg/apps/tasks/static/tasks/js/dashboard.js +0 -614
  90. django_cfg/apps/tasks/static/tasks/js/modals.js +0 -452
  91. django_cfg/apps/tasks/static/tasks/js/notifications.js +0 -144
  92. django_cfg/apps/tasks/static/tasks/js/task-monitor.js +0 -454
  93. django_cfg/apps/tasks/static/tasks/js/theme.js +0 -77
  94. django_cfg/apps/tasks/templates/tasks/base.html +0 -96
  95. django_cfg/apps/tasks/templates/tasks/components/info_cards.html +0 -85
  96. django_cfg/apps/tasks/templates/tasks/components/overview_tab.html +0 -22
  97. django_cfg/apps/tasks/templates/tasks/components/queues_tab.html +0 -19
  98. django_cfg/apps/tasks/templates/tasks/components/task_details_modal.html +0 -103
  99. django_cfg/apps/tasks/templates/tasks/components/tasks_tab.html +0 -32
  100. django_cfg/apps/tasks/templates/tasks/components/workers_tab.html +0 -29
  101. django_cfg/apps/tasks/templates/tasks/dashboard.html +0 -29
  102. django_cfg/apps/tasks/views.py +0 -461
  103. django_cfg/management/commands/app_agent_diagnose.py +0 -470
  104. django_cfg/management/commands/app_agent_generate.py +0 -342
  105. django_cfg/management/commands/app_agent_info.py +0 -308
  106. django_cfg/management/commands/auto_generate.py +0 -486
  107. django_cfg/modules/django_app_agent/__init__.py +0 -87
  108. django_cfg/modules/django_app_agent/agents/__init__.py +0 -40
  109. django_cfg/modules/django_app_agent/agents/base/__init__.py +0 -24
  110. django_cfg/modules/django_app_agent/agents/base/agent.py +0 -354
  111. django_cfg/modules/django_app_agent/agents/base/context.py +0 -236
  112. django_cfg/modules/django_app_agent/agents/base/executor.py +0 -430
  113. django_cfg/modules/django_app_agent/agents/generation/__init__.py +0 -12
  114. django_cfg/modules/django_app_agent/agents/generation/app_generator/__init__.py +0 -15
  115. django_cfg/modules/django_app_agent/agents/generation/app_generator/config_validator.py +0 -147
  116. django_cfg/modules/django_app_agent/agents/generation/app_generator/main.py +0 -99
  117. django_cfg/modules/django_app_agent/agents/generation/app_generator/models.py +0 -32
  118. django_cfg/modules/django_app_agent/agents/generation/app_generator/prompt_manager.py +0 -290
  119. django_cfg/modules/django_app_agent/agents/interfaces.py +0 -376
  120. django_cfg/modules/django_app_agent/core/__init__.py +0 -33
  121. django_cfg/modules/django_app_agent/core/config.py +0 -300
  122. django_cfg/modules/django_app_agent/core/exceptions.py +0 -359
  123. django_cfg/modules/django_app_agent/models/__init__.py +0 -71
  124. django_cfg/modules/django_app_agent/models/base.py +0 -283
  125. django_cfg/modules/django_app_agent/models/context.py +0 -496
  126. django_cfg/modules/django_app_agent/models/enums.py +0 -481
  127. django_cfg/modules/django_app_agent/models/requests.py +0 -500
  128. django_cfg/modules/django_app_agent/models/responses.py +0 -585
  129. django_cfg/modules/django_app_agent/pytest.ini +0 -6
  130. django_cfg/modules/django_app_agent/services/__init__.py +0 -42
  131. django_cfg/modules/django_app_agent/services/app_generator/__init__.py +0 -30
  132. django_cfg/modules/django_app_agent/services/app_generator/ai_integration.py +0 -133
  133. django_cfg/modules/django_app_agent/services/app_generator/context.py +0 -40
  134. django_cfg/modules/django_app_agent/services/app_generator/main.py +0 -202
  135. django_cfg/modules/django_app_agent/services/app_generator/structure.py +0 -316
  136. django_cfg/modules/django_app_agent/services/app_generator/validation.py +0 -125
  137. django_cfg/modules/django_app_agent/services/base.py +0 -437
  138. django_cfg/modules/django_app_agent/services/context_builder/__init__.py +0 -34
  139. django_cfg/modules/django_app_agent/services/context_builder/code_extractor.py +0 -141
  140. django_cfg/modules/django_app_agent/services/context_builder/context_generator.py +0 -276
  141. django_cfg/modules/django_app_agent/services/context_builder/main.py +0 -272
  142. django_cfg/modules/django_app_agent/services/context_builder/models.py +0 -40
  143. django_cfg/modules/django_app_agent/services/context_builder/pattern_analyzer.py +0 -85
  144. django_cfg/modules/django_app_agent/services/project_scanner/__init__.py +0 -31
  145. django_cfg/modules/django_app_agent/services/project_scanner/app_discovery.py +0 -311
  146. django_cfg/modules/django_app_agent/services/project_scanner/main.py +0 -221
  147. django_cfg/modules/django_app_agent/services/project_scanner/models.py +0 -59
  148. django_cfg/modules/django_app_agent/services/project_scanner/pattern_detection.py +0 -94
  149. django_cfg/modules/django_app_agent/services/questioning_service/__init__.py +0 -28
  150. django_cfg/modules/django_app_agent/services/questioning_service/main.py +0 -273
  151. django_cfg/modules/django_app_agent/services/questioning_service/models.py +0 -111
  152. django_cfg/modules/django_app_agent/services/questioning_service/question_generator.py +0 -251
  153. django_cfg/modules/django_app_agent/services/questioning_service/response_processor.py +0 -347
  154. django_cfg/modules/django_app_agent/services/questioning_service/session_manager.py +0 -356
  155. django_cfg/modules/django_app_agent/services/report_service.py +0 -332
  156. django_cfg/modules/django_app_agent/services/template_manager/__init__.py +0 -18
  157. django_cfg/modules/django_app_agent/services/template_manager/jinja_engine.py +0 -236
  158. django_cfg/modules/django_app_agent/services/template_manager/main.py +0 -159
  159. django_cfg/modules/django_app_agent/services/template_manager/models.py +0 -36
  160. django_cfg/modules/django_app_agent/services/template_manager/template_loader.py +0 -100
  161. django_cfg/modules/django_app_agent/services/template_manager/templates/admin.py.j2 +0 -105
  162. django_cfg/modules/django_app_agent/services/template_manager/templates/apps.py.j2 +0 -31
  163. django_cfg/modules/django_app_agent/services/template_manager/templates/cfg_config.py.j2 +0 -44
  164. django_cfg/modules/django_app_agent/services/template_manager/templates/cfg_module.py.j2 +0 -81
  165. django_cfg/modules/django_app_agent/services/template_manager/templates/forms.py.j2 +0 -107
  166. django_cfg/modules/django_app_agent/services/template_manager/templates/models.py.j2 +0 -139
  167. django_cfg/modules/django_app_agent/services/template_manager/templates/serializers.py.j2 +0 -91
  168. django_cfg/modules/django_app_agent/services/template_manager/templates/tests.py.j2 +0 -195
  169. django_cfg/modules/django_app_agent/services/template_manager/templates/urls.py.j2 +0 -35
  170. django_cfg/modules/django_app_agent/services/template_manager/templates/views.py.j2 +0 -211
  171. django_cfg/modules/django_app_agent/services/template_manager/variable_processor.py +0 -200
  172. django_cfg/modules/django_app_agent/services/validation_service/__init__.py +0 -25
  173. django_cfg/modules/django_app_agent/services/validation_service/django_validator.py +0 -333
  174. django_cfg/modules/django_app_agent/services/validation_service/main.py +0 -242
  175. django_cfg/modules/django_app_agent/services/validation_service/models.py +0 -66
  176. django_cfg/modules/django_app_agent/services/validation_service/quality_validator.py +0 -352
  177. django_cfg/modules/django_app_agent/services/validation_service/security_validator.py +0 -272
  178. django_cfg/modules/django_app_agent/services/validation_service/syntax_validator.py +0 -203
  179. django_cfg/modules/django_app_agent/ui/__init__.py +0 -25
  180. django_cfg/modules/django_app_agent/ui/cli.py +0 -419
  181. django_cfg/modules/django_app_agent/ui/rich_components.py +0 -622
  182. django_cfg/modules/django_app_agent/utils/__init__.py +0 -38
  183. django_cfg/modules/django_app_agent/utils/logging.py +0 -360
  184. django_cfg/modules/django_app_agent/utils/validation.py +0 -417
  185. {django_cfg-1.3.9.dist-info → django_cfg-1.3.11.dist-info}/WHEEL +0 -0
  186. {django_cfg-1.3.9.dist-info → django_cfg-1.3.11.dist-info}/entry_points.txt +0 -0
  187. {django_cfg-1.3.9.dist-info → django_cfg-1.3.11.dist-info}/licenses/LICENSE +0 -0
@@ -1,99 +0,0 @@
1
- """
2
- Main App Generator Agent class.
3
-
4
- This module contains the primary agent class that orchestrates
5
- Django application generation using AI.
6
- """
7
-
8
- from typing import List
9
- import asyncio
10
-
11
- from pydantic_ai import Agent, RunContext
12
-
13
- from ...base import DjangoAgent, AgentDependencies
14
- from ....models.requests import AppGenerationRequest
15
- from ....core.exceptions import GenerationError
16
-
17
- from .models import FileGenerationRequest, GeneratedFileResponse
18
- from .config_validator import ConfigValidator
19
- from .prompt_manager import PromptManager
20
-
21
-
22
- class AppGeneratorAgent(DjangoAgent):
23
- """AI agent for generating Django application files."""
24
-
25
- def __init__(self, config):
26
- """Initialize the app generator agent."""
27
- # Initialize components
28
- self.config_validator = ConfigValidator()
29
- self.prompt_manager = PromptManager()
30
-
31
- # Validate API keys and configure model first
32
- self.model = self.config_validator.validate_and_configure(config)
33
-
34
- # Initialize Pydantic AI agent
35
- self.pydantic_agent = Agent(
36
- model=self.model,
37
- retries=2
38
- )
39
-
40
- # Now call super init which will call _register_instructions
41
- super().__init__("app_generator", config)
42
-
43
- async def generate_file(
44
- self,
45
- request: FileGenerationRequest
46
- ) -> GeneratedFileResponse:
47
- """Generate a specific file for the Django application."""
48
- try:
49
- # Create detailed prompt for the specific feature
50
- prompt = self.prompt_manager.create_feature_prompt(request)
51
-
52
- # Run AI generation
53
- result = await self.pydantic_agent.run(prompt)
54
-
55
- return result.data
56
-
57
- except Exception as e:
58
- raise GenerationError(
59
- f"Failed to generate {request.feature.value} file: {e}",
60
- app_name=request.app_name,
61
- generation_stage=f"generate_{request.feature.value}_file"
62
- )
63
-
64
- async def generate_multiple_files(
65
- self,
66
- app_request: AppGenerationRequest
67
- ) -> List[GeneratedFileResponse]:
68
- """Generate multiple files for an application."""
69
- results = []
70
-
71
- for feature in app_request.features:
72
- request = FileGenerationRequest(
73
- app_name=app_request.app_name,
74
- description=app_request.description,
75
- feature=feature,
76
- app_type=app_request.app_type,
77
- complexity=app_request.complexity
78
- )
79
-
80
- try:
81
- result = await self.generate_file(request)
82
- results.append(result)
83
- except Exception as e:
84
- self.logger.error(f"Failed to generate {feature.value}: {e}")
85
- # Continue with other features
86
- continue
87
-
88
- return results
89
-
90
- def _register_instructions(self) -> None:
91
- """Register agent instructions."""
92
- @self.pydantic_agent.system_prompt
93
- async def agent_instructions(ctx: RunContext[AgentDependencies]) -> str:
94
- return self.prompt_manager.get_system_prompt()
95
-
96
- def _register_tools(self) -> None:
97
- """Register agent tools."""
98
- # No additional tools needed for basic file generation
99
- pass
@@ -1,32 +0,0 @@
1
- """
2
- Data models for the App Generator Agent.
3
-
4
- This module contains Pydantic models used for request/response
5
- handling in the AI agent.
6
- """
7
-
8
- from typing import List, Dict, Any
9
- from pydantic import BaseModel, Field
10
-
11
- from ....models.enums import AppFeature, AppType, AppComplexity
12
-
13
-
14
- class FileGenerationRequest(BaseModel):
15
- """Request for generating a specific file."""
16
-
17
- app_name: str = Field(description="Name of the Django application")
18
- description: str = Field(description="Application description")
19
- feature: AppFeature = Field(description="Feature to generate")
20
- app_type: AppType = Field(description="Type of Django application")
21
- complexity: AppComplexity = Field(description="Application complexity level")
22
- additional_context: Dict[str, Any] = Field(default_factory=dict, description="Additional context")
23
-
24
-
25
- class GeneratedFileResponse(BaseModel):
26
- """Response containing generated file content."""
27
-
28
- filename: str = Field(description="Name of the generated file")
29
- content: str = Field(description="File content")
30
- imports: List[str] = Field(default_factory=list, description="Required imports")
31
- dependencies: List[str] = Field(default_factory=list, description="Package dependencies")
32
- description: str = Field(description="File description")
@@ -1,290 +0,0 @@
1
- """
2
- Prompt management for the App Generator Agent.
3
-
4
- This module handles all AI prompts for different Django features
5
- and provides intelligent prompt generation based on requirements.
6
- """
7
-
8
- from .models import FileGenerationRequest
9
- from ....models.enums import AppFeature
10
-
11
-
12
- class PromptManager:
13
- """Manages AI prompts for different Django features."""
14
-
15
- def get_system_prompt(self) -> str:
16
- """Get the system prompt for the AI agent."""
17
- return """You are an expert Django developer with deep knowledge of Django best practices,
18
- design patterns, and modern Python development.
19
-
20
- Your task is to generate high-quality Django application files based on user requirements.
21
-
22
- Guidelines:
23
- 1. Follow Django best practices and conventions
24
- 2. Use proper Python type hints
25
- 3. Include comprehensive docstrings
26
- 4. Add appropriate error handling
27
- 5. Follow PEP 8 style guidelines
28
- 6. Use modern Django features (Django 5.x)
29
- 7. Include proper imports and dependencies
30
- 8. Generate production-ready code
31
- 9. Add meaningful comments where needed
32
- 10. Consider security best practices
33
-
34
- For django-cfg applications, also:
35
- - Use django-cfg patterns and conventions
36
- - Leverage django-cfg modules when appropriate
37
- - Follow the infrastructural layer approach
38
- - Use proper configuration management
39
-
40
- Always generate complete, working code that can be used immediately."""
41
-
42
- def create_feature_prompt(self, request: FileGenerationRequest) -> str:
43
- """Create a detailed prompt for generating a specific feature."""
44
- feature_prompts = {
45
- AppFeature.MODELS: self._get_models_prompt(request),
46
- AppFeature.VIEWS: self._get_views_prompt(request),
47
- AppFeature.ADMIN: self._get_admin_prompt(request),
48
- AppFeature.URLS: self._get_urls_prompt(request),
49
- AppFeature.FORMS: self._get_forms_prompt(request),
50
- AppFeature.API: self._get_api_prompt(request),
51
- AppFeature.TESTS: self._get_tests_prompt(request),
52
- AppFeature.TASKS: self._get_tasks_prompt(request),
53
- AppFeature.SIGNALS: self._get_signals_prompt(request),
54
- }
55
-
56
- return feature_prompts.get(request.feature, self._get_generic_prompt(request))
57
-
58
- def _get_models_prompt(self, request: FileGenerationRequest) -> str:
59
- """Get prompt for generating models.py."""
60
- return f"""Generate a Django models.py file for the '{request.app_name}' application.
61
-
62
- Application Details:
63
- - Name: {request.app_name}
64
- - Description: {request.description}
65
- - Type: {request.app_type.value}
66
- - Complexity: {request.complexity.value}
67
-
68
- Requirements:
69
- 1. Create relevant models based on the application description
70
- 2. Use appropriate field types and relationships
71
- 3. Include proper Meta classes with ordering, verbose names
72
- 4. Add __str__ methods for all models
73
- 5. Use abstract base models where appropriate
74
- 6. Include created_at/updated_at timestamps
75
- 7. Add proper model validation
76
- 8. Include relevant indexes for performance
77
- 9. Use proper related_name for relationships
78
- 10. Add comprehensive docstrings
79
-
80
- For django-cfg apps, also consider:
81
- - Using django-cfg base models if appropriate
82
- - Following django-cfg naming conventions
83
- - Including proper configuration fields
84
-
85
- Generate complete, production-ready models with proper imports."""
86
-
87
- def _get_views_prompt(self, request: FileGenerationRequest) -> str:
88
- """Get prompt for generating views.py."""
89
- return f"""Generate a Django views.py file for the '{request.app_name}' application.
90
-
91
- Application Details:
92
- - Name: {request.app_name}
93
- - Description: {request.description}
94
- - Type: {request.app_type.value}
95
- - Complexity: {request.complexity.value}
96
-
97
- Requirements:
98
- 1. Create appropriate view classes/functions based on the app purpose
99
- 2. Use class-based views where appropriate
100
- 3. Include proper permission checks
101
- 4. Add error handling and validation
102
- 5. Use proper HTTP status codes
103
- 6. Include pagination for list views
104
- 7. Add proper context data
105
- 8. Use Django's built-in mixins
106
- 9. Include proper docstrings
107
- 10. Add type hints
108
-
109
- Generate complete, secure views with proper imports and error handling."""
110
-
111
- def _get_admin_prompt(self, request: FileGenerationRequest) -> str:
112
- """Get prompt for generating admin.py."""
113
- return f"""Generate a Django admin.py file for the '{request.app_name}' application.
114
-
115
- Application Details:
116
- - Name: {request.app_name}
117
- - Description: {request.description}
118
- - Type: {request.app_type.value}
119
- - Complexity: {request.complexity.value}
120
-
121
- Requirements:
122
- 1. Register all models with appropriate admin classes
123
- 2. Configure list_display, list_filter, search_fields
124
- 3. Add proper fieldsets for complex models
125
- 4. Include inline admin for related models
126
- 5. Add custom admin actions where useful
127
- 6. Use proper admin permissions
128
- 7. Include admin-specific methods
129
- 8. Add proper docstrings
130
- 9. Configure admin ordering and pagination
131
- 10. Add custom admin templates if needed
132
-
133
- Generate a complete admin configuration with good UX."""
134
-
135
- def _get_urls_prompt(self, request: FileGenerationRequest) -> str:
136
- """Get prompt for generating urls.py."""
137
- return f"""Generate a Django urls.py file for the '{request.app_name}' application.
138
-
139
- Application Details:
140
- - Name: {request.app_name}
141
- - Description: {request.description}
142
- - Type: {request.app_type.value}
143
- - Complexity: {request.complexity.value}
144
-
145
- Requirements:
146
- 1. Create appropriate URL patterns for the application
147
- 2. Use proper URL naming conventions
148
- 3. Include namespace for the app
149
- 4. Add URL patterns for all major views
150
- 5. Use path() instead of url() (modern Django)
151
- 6. Include proper parameter types in URLs
152
- 7. Add API endpoints if this is an API app
153
- 8. Consider SEO-friendly URLs
154
- 9. Include proper docstrings
155
- 10. Group related URLs logically
156
-
157
- Generate complete URL configuration with proper imports."""
158
-
159
- def _get_forms_prompt(self, request: FileGenerationRequest) -> str:
160
- """Get prompt for generating forms.py."""
161
- return f"""Generate a Django forms.py file for the '{request.app_name}' application.
162
-
163
- Application Details:
164
- - Name: {request.app_name}
165
- - Description: {request.description}
166
- - Type: {request.app_type.value}
167
- - Complexity: {request.complexity.value}
168
-
169
- Requirements:
170
- 1. Create ModelForm classes for main models
171
- 2. Add proper field validation
172
- 3. Include custom clean methods
173
- 4. Use appropriate widgets
174
- 5. Add form styling classes
175
- 6. Include proper error messages
176
- 7. Add form helpers if using crispy forms
177
- 8. Include proper docstrings
178
- 9. Add custom form fields if needed
179
- 10. Consider accessibility
180
-
181
- Generate complete, user-friendly forms with proper validation."""
182
-
183
- def _get_api_prompt(self, request: FileGenerationRequest) -> str:
184
- """Get prompt for generating API files (serializers.py)."""
185
- return f"""Generate Django REST Framework serializers.py for the '{request.app_name}' application.
186
-
187
- Application Details:
188
- - Name: {request.app_name}
189
- - Description: {request.description}
190
- - Type: {request.app_type.value}
191
- - Complexity: {request.complexity.value}
192
-
193
- Requirements:
194
- 1. Create ModelSerializer classes for main models
195
- 2. Include proper field validation
196
- 3. Add custom serializer methods
197
- 4. Use nested serializers for relationships
198
- 5. Include proper read-only fields
199
- 6. Add custom create/update methods
200
- 7. Include proper docstrings
201
- 8. Add API versioning considerations
202
- 9. Use proper field representations
203
- 10. Include permission-aware serialization
204
-
205
- Generate complete REST API serializers with proper validation."""
206
-
207
- def _get_tests_prompt(self, request: FileGenerationRequest) -> str:
208
- """Get prompt for generating tests.py."""
209
- return f"""Generate comprehensive Django tests.py for the '{request.app_name}' application.
210
-
211
- Application Details:
212
- - Name: {request.app_name}
213
- - Description: {request.description}
214
- - Type: {request.app_type.value}
215
- - Complexity: {request.complexity.value}
216
-
217
- Requirements:
218
- 1. Create test classes for models, views, forms
219
- 2. Use Django's TestCase and test client
220
- 3. Include proper test data setup
221
- 4. Test all major functionality
222
- 5. Add negative test cases
223
- 6. Test permissions and security
224
- 7. Include API tests if applicable
225
- 8. Use proper assertions
226
- 9. Add performance tests for complex operations
227
- 10. Include integration tests
228
-
229
- Generate comprehensive test coverage with proper test organization."""
230
-
231
- def _get_tasks_prompt(self, request: FileGenerationRequest) -> str:
232
- """Get prompt for generating tasks.py (Celery/background tasks)."""
233
- return f"""Generate Django tasks.py for background processing in the '{request.app_name}' application.
234
-
235
- Application Details:
236
- - Name: {request.app_name}
237
- - Description: {request.description}
238
- - Type: {request.app_type.value}
239
- - Complexity: {request.complexity.value}
240
-
241
- Requirements:
242
- 1. Create Celery tasks for background processing
243
- 2. Include proper error handling and retries
244
- 3. Add task monitoring and logging
245
- 4. Use proper task signatures
246
- 5. Include task result handling
247
- 6. Add periodic tasks if needed
248
- 7. Include proper docstrings
249
- 8. Add task progress tracking
250
- 9. Use proper task queues
251
- 10. Include task testing utilities
252
-
253
- Generate production-ready background tasks with proper error handling."""
254
-
255
- def _get_signals_prompt(self, request: FileGenerationRequest) -> str:
256
- """Get prompt for generating signals.py."""
257
- return f"""Generate Django signals.py for the '{request.app_name}' application.
258
-
259
- Application Details:
260
- - Name: {request.app_name}
261
- - Description: {request.description}
262
- - Type: {request.app_type.value}
263
- - Complexity: {request.complexity.value}
264
-
265
- Requirements:
266
- 1. Create appropriate signal handlers
267
- 2. Use proper signal decorators
268
- 3. Include error handling in signals
269
- 4. Add proper logging
270
- 5. Consider signal performance impact
271
- 6. Include proper docstrings
272
- 7. Use weak references where appropriate
273
- 8. Add signal testing
274
- 9. Consider signal ordering
275
- 10. Include proper cleanup
276
-
277
- Generate efficient signal handlers with proper error handling."""
278
-
279
- def _get_generic_prompt(self, request: FileGenerationRequest) -> str:
280
- """Get generic prompt for other features."""
281
- return f"""Generate a Django file for the '{request.feature.value}' feature in the '{request.app_name}' application.
282
-
283
- Application Details:
284
- - Name: {request.app_name}
285
- - Description: {request.description}
286
- - Feature: {request.feature.value}
287
- - Type: {request.app_type.value}
288
- - Complexity: {request.complexity.value}
289
-
290
- Generate appropriate, production-ready code following Django best practices."""