First Commit

This commit is contained in:
mrtoine 2025-09-12 11:11:44 +02:00
commit ce0758fbbb
496 changed files with 52062 additions and 0 deletions

122
messagerie/views.py Normal file
View file

@ -0,0 +1,122 @@
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from .models import PrivateMessage, PrivateMessageSubject
from django.db import models
from django.db.models import Max
from .forms import PrivateMessageForm, PrivateMessageSubjectForm
from django.contrib import messages
@login_required
def home(request):
private_messages = PrivateMessageSubject.objects.filter(
(models.Q(receiver=request.user) | models.Q(sender=request.user)) & models.Q(is_active=True)
).annotate(last_message_date=Max('messages__date_sent')).order_by('-last_message_date')
return render(request, 'messagerie/home.html', {'private_messages': private_messages})
@login_required
def view_message(request, message_id):
pm_message = PrivateMessageSubject.objects.get(pk=message_id)
if (pm_message.receiver != request.user and pm_message.sender != request.user) or not pm_message.is_active:
return redirect('pm_home')
private_messages = PrivateMessage.objects.filter(subject=pm_message).order_by('date_sent')
form = PrivateMessageForm(request.POST or None)
if not pm_message.is_read and pm_message.messages.first().author != request.user:
pm_message.is_read = True
pm_message.save()
if form.is_valid():
message = form.save(commit=False)
message.author = request.user
message.subject = pm_message
message.save()
pm_message.is_read = False
pm_message.save()
form = PrivateMessageForm()
return render(request, 'messagerie/view_message.html', {'pm_message': pm_message, 'private_messages': private_messages, 'form': form})
return render(request, 'messagerie/view_message.html', {'pm_message': pm_message, 'private_messages': private_messages, 'form': form})
@login_required
def new_message(request):
form_subject = PrivateMessageSubjectForm(request.POST or None)
form_message = PrivateMessageForm(request.POST or None)
if form_subject.is_valid() and form_message.is_valid():
if form_subject.cleaned_data['receiver'] == request.user:
messages.error(request, 'Vous ne pouvez pas vous envoyer un message à vous-même')
return redirect('pm_home')
subject = form_subject.save(commit=False)
subject.sender = request.user
subject.is_read = False
subject.save()
message = form_message.save(commit=False)
message.author = request.user
message.subject = subject
message.save()
return redirect('pm_view', message_id=message.id)
return render(request, 'messagerie/new_message.html', {'form_subject': form_subject, 'form_message': form_message})
def delete_subject(request, message_id):
pm_message = PrivateMessageSubject.objects.get(pk=message_id)
if pm_message.receiver != request.user and pm_message.sender != request.user:
return redirect('pm_home')
pm_message.is_active = False
pm_message.is_read = True
pm_message.save()
messages.success(request, 'Le sujet a bien été supprimé')
return redirect('pm_home')
@login_required
def send_all_users(request):
from users.models import User
all_users = User.objects.all()
sender = User.objects.get(username='RetroBot')
for user in all_users:
subject = PrivateMessageSubject.objects.create(
receiver=user,
sender=User.objects.get(username='RetroBot'),
subject="Bienvenue sur PassionRetro !"
)
PrivateMessage.objects.create(
subject=subject,
author=User.objects.get(username='RetroBot'),
message=f"""[b]Bienvenue sur Passion Retro ![/b]
Salut [b]{user.username}[/b] !,
Merci de nous avoir rejoints dans cette aventure dédiée aux passionnés de rétro ! Que tu sois fan de consoles vintage, collectionneur d'objets d'époque ou simple curieux, tu es ici chez toi.
[b]Découvre tout ce que Passion Retro a à offrir :[/b]
Plonge dans nos articles pour en apprendre plus sur les trésors du passé, participe aux discussions sur le forum et teste tes connaissances avec nos jeux rétro. Chaque section est pour te permettre de partager ta passion et d'en apprendre davantage.
🚀 [b]Rejoins la communauté :[/b]
Ton avis et tes contributions sont précieux ! Nhésite pas à lancer une discussion sur le forum, à réagir aux articles ou à défier les autres membres sur nos jeux. Plus nous sommes actifs, plus lexpérience sera enrichissante pour tous.
Si tu as des questions ou des suggestions pour améliorer le site, contacte-nous. Nous sommes pour t'accompagner !
Encore une fois, bienvenue parmi nous et prépare-toi à replonger dans lunivers du rétro !
À bientôt,
[b]L'équipe Passion Retro[/b]""")
subject = PrivateMessageSubject.objects.create(receiver=user, sender=sender, subject='Bienvenue sur la messagerie privée')
PrivateMessage.objects.create(
subject=subject,
author=sender,
message=f"Cher [b]{user.username}[/b],\n\nBienvenue sur la messagerie privée de passion-retro. Tu peux désormais échanger des messages privés avec les autres membres du site.\n\nQuant a moi, je suis un nouvel utilisateur du site venu de la planète [b]Retronia[/b] ! J'ai été investis de la mission la plus importante de ma longue vie : [u]être le meilleur assistant de passion-retro[/u] ! J'espère sincèrement y parvenir !\n\nJe suis encore en orbite actuellement, mais guette les infos car je serait bientôt présent !\n\nCordialement,\n{sender.username}"
)
return redirect('pm_home')