mirror of
https://github.com/ferdzo/serviceCRM.git
synced 2026-04-05 05:06:25 +00:00
Working prototype with tailwind, added uv, updated models, added docker.
This commit is contained in:
58
.github/copilot-instructions.md
vendored
Normal file
58
.github/copilot-instructions.md
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
# ServiceCRM Copilot Instructions
|
||||
|
||||
## Project Overview
|
||||
ServiceCRM is a simple Service Ticket Management System built with Django. It manages repair tickets ("Inserts") for service customers, tracking details like customer info, defect description, repair status, and notes.
|
||||
|
||||
## Architecture
|
||||
- **Framework**: Django 4.x (compatible with 5.x/6.x in dependencies).
|
||||
- **Structure**: Single-app project where the `serviceCRM` package contains both project settings and application logic (views, models, urls).
|
||||
- **Patterns**: Model-View-Template (MVT).
|
||||
- **Frontend**: Server-side rendered templates using Bootstrap 5 and `django-crispy-forms`.
|
||||
|
||||
## Key Components
|
||||
|
||||
### Data Model
|
||||
- **Primary Model**: `Insert` (defined in `serviceCRM/models.py`).
|
||||
- Represents a service ticket.
|
||||
- Key fields: `name`, `phone`, `description` (defect), `repair` (resolution), `done` (status), `date`.
|
||||
|
||||
### Views & Controllers
|
||||
- **Location**: `serviceCRM/views.py`.
|
||||
- **Pattern**: Mix of Class-Based Views (CBV) and Function-Based Views (FBV).
|
||||
- List views use `django_tables2.SingleTableView`.
|
||||
- Create/Update use `generic.View` and `generic.UpdateView`.
|
||||
- **Note**: Some views use a non-standard static method pattern (e.g., `InsertNew.insert` referenced in URLs).
|
||||
|
||||
### UI/UX
|
||||
- **Tables**: `django-tables2` is used for listing records (`serviceCRM/tables.py`).
|
||||
- **Forms**: `django-crispy-forms` with `crispy-bootstrap5` pack (`serviceCRM/forms.py`).
|
||||
- **Templates**: Located in `templates/` and `templates/serviceCRM/`.
|
||||
|
||||
## Configuration & Environment
|
||||
- **Settings**: `serviceCRM/settings.py` uses `django-environ`.
|
||||
- **Environment**: Configuration reads from `.env` file (see `.env.example`).
|
||||
- **Database**:
|
||||
- Local/Dev: SQLite (configured via `settings.py` overriding env vars if needed).
|
||||
- Production: Configurable via `DATABASE_URL` or individual env vars (PostgreSQL supported).
|
||||
|
||||
## Development Workflow
|
||||
|
||||
### Setup
|
||||
1. Create `.env` from `.env.example`.
|
||||
2. Install dependencies: `pip install -r requirements.txt`.
|
||||
3. Run migrations: `python manage.py migrate`.
|
||||
|
||||
### Common Commands
|
||||
- **Run Server**: `python manage.py runserver`
|
||||
- **Make Migrations**: `python manage.py makemigrations` (Required when changing `models.py`)
|
||||
- **Migrate**: `python manage.py migrate`
|
||||
|
||||
## Coding Conventions
|
||||
- **Imports**: standard library -> third party -> django -> local apps.
|
||||
- **Urls**: Defined in `serviceCRM/urls.py` (which is the root URLconf).
|
||||
- **Routing**: Routes are mixed between CBV (`.as_view()`) and function references. Maintain consistency with existing patterns when adding new routes.
|
||||
|
||||
## Critical Patterns to Respect
|
||||
1. **Forms**: Always use `InputForm` in `serviceCRM/forms.py` for ticket creation/editing to ensure consistent widget rendering with Bootstrap classes.
|
||||
2. **Tables**: When adding lists, subclass `tables.Table` in `serviceCRM/tables.py` and use `SingleTableView` for display/sorting features.
|
||||
3. **Template Inheritance**: All templates should extend `base.html`.
|
||||
Reference in New Issue
Block a user