Tag progetto, @menzioni, appuntamenti da conversazioni
- Modello Tag con nome e colore, M2M su Conversazione - Modello Appuntamento con luogo, note, partecipanti, link a Conversazione - @menzioni nei commenti e aggiornamenti: @username → link al profilo - Autocomplete JS per @menzioni nelle textarea - Auto-data conversazioni (default=now) - CRUD completo appuntamenti con permessi autore - Appuntamenti in agenda, dashboard, dettaglio conversazione - Crea riunione direttamente da una conversazione (pre-compila titolo e partecipanti) - Admin: Tag, Appuntamento registrati
This commit is contained in:
59
diario/migrations/0006_tag_appuntamento.py
Normal file
59
diario/migrations/0006_tag_appuntamento.py
Normal file
@@ -0,0 +1,59 @@
|
||||
# Generated by Django 5.2.12 on 2026-04-07 14:27
|
||||
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('diario', '0005_commento_conversazione'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Tag',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('nome', models.CharField(max_length=50, unique=True)),
|
||||
('colore', models.CharField(default='#4361ee', max_length=7)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Tag',
|
||||
'verbose_name_plural': 'Tag',
|
||||
'ordering': ['nome'],
|
||||
},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='conversazione',
|
||||
name='data',
|
||||
field=models.DateTimeField(default=django.utils.timezone.now),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Appuntamento',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('titolo', models.CharField(max_length=200)),
|
||||
('data_ora', models.DateTimeField()),
|
||||
('luogo', models.CharField(blank=True, max_length=200)),
|
||||
('note', models.TextField(blank=True)),
|
||||
('data_creazione', models.DateTimeField(auto_now_add=True)),
|
||||
('conversazione', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='appuntamenti', to='diario.conversazione')),
|
||||
('creato_da', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='appuntamenti_creati', to=settings.AUTH_USER_MODEL)),
|
||||
('partecipanti', models.ManyToManyField(blank=True, related_name='appuntamenti', to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Appuntamento',
|
||||
'verbose_name_plural': 'Appuntamenti',
|
||||
'ordering': ['data_ora'],
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='conversazione',
|
||||
name='tags',
|
||||
field=models.ManyToManyField(blank=True, related_name='conversazioni', to='diario.tag'),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user