Przejdź do treści

🚀 Tworzenie Modułu - Krok po Kroku

Ten przewodnik pomoże Ci utworzyć nowy moduł od zera zgodnie z wytycznymi Panel Księgowy.


📋 Checklist

Przed rozpoczęciem: - [ ] Przeczytałeś Struktura Modułu - [ ] Sprawdziłeś built-features-registry.mdc czy moduł nie istnieje - [ ] Masz plan funkcjonalności modułu


🚀 Krok 1: Utworzenie struktury

1.1 Utwórz katalogi

mkdir -p apps/my_module/{models,views,templates/my_module}
touch apps/my_module/{__init__.py,urls.py,admin.py,forms.py,services.py}
touch apps/my_module/models/__init__.py
touch apps/my_module/views/__init__.py

1.2 Dodaj do INSTALLED_APPS

# settings.py
INSTALLED_APPS = [
    # ...
    'apps.my_module',
]

🚀 Krok 2: Modele

2.1 Utwórz model

# apps/my_module/models/main.py
from apps.teams.models import BaseTeamModel

class MyModel(BaseTeamModel):
    name = models.CharField(max_length=200)

    class Meta:
        verbose_name = "My Model"
        verbose_name_plural = "My Models"

2.2 Zarejestruj w admin

# apps/my_module/admin.py
from django.contrib import admin
from .models import MyModel

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    list_display = ['name', 'team', 'created_at']

🚀 Krok 3: Views

3.1 Dashboard

# apps/my_module/views/dashboard.py
from apps.teams.decorators import login_and_team_required

@login_and_team_required
def dashboard(request, team_slug):
    team = request.team
    stats = {
        'total': MyModel.objects.filter(team=team).count(),
    }
    return render(request, 'my_module/dashboard.html', {
        'team': team,
        'stats': stats,
    })

3.2 Settings

# apps/my_module/views/settings.py
from apps.teams.decorators import login_and_team_required, team_admin_required

@login_and_team_required
@team_admin_required
def settings(request, team_slug):
    # ...

🚀 Krok 4: URLs

# apps/my_module/urls.py
from django.urls import path
from . import views

app_name = 'my_module'

team_urlpatterns = [
    path('', views.dashboard, name='dashboard'),
    path('settings/', views.settings, name='settings'),
]

🚀 Krok 5: Templates

5.1 Dashboard Template

{% extends "web/app/app_base_tailadmin.html" %}
{% load i18n %}

{% block app %}
<div class="mx-auto max-w-screen-2xl p-4 md:p-6 2xl:p-10">
  <h1>{% translate "My Module Dashboard" %}</h1>
</div>
{% endblock %}

🚀 Krok 6: Migracje

python manage.py makemigrations my_module
python manage.py migrate

🚀 Krok 7: Dokumentacja

Utwórz README.md:

# My Module

## Overview
Brief description of the module.

## Features
- Feature 1
- Feature 2

## Usage
...

🚀 Krok 8: Aktualizacja rejestru

Zaktualizuj built-features-registry.mdc:

### X. My Module
**Status:** ✅ Complete
**Dashboard:** `/a/<team_slug>/my_module/`
**Settings:** `/a/<team_slug>/my_module/settings/`

📚 Więcej informacji


Ostatnia aktualizacja: 2025-11-29
Wersja dokumentacji: 1.0