feat(chat): add models, views, WebSocket consumers, forms and URL config

This commit is contained in:
2026-04-28 12:36:36 +02:00
parent 9295617d8e
commit 57950e73da
9 changed files with 526 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
from django import forms
from django.contrib.auth.models import User
from chat.models import UserProfile, Channel
class RegisterForm(forms.Form):
username = forms.CharField(max_length=150)
email = forms.EmailField()
password = forms.CharField(widget=forms.PasswordInput)
def clean_username(self):
username = self.cleaned_data['username']
if User.objects.filter(username=username).exists():
raise forms.ValidationError('Username already taken.')
return username
def clean_email(self):
email = self.cleaned_data['email']
if User.objects.filter(email=email).exists():
raise forms.ValidationError('Email already in use.')
return email
class ProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ['avatar', 'bio']
widgets = {
'bio': forms.Textarea(attrs={'rows': 3}),
}
class ChannelForm(forms.ModelForm):
class Meta:
model = Channel
fields = ['name', 'description']
class MessageFileForm(forms.Form):
file = forms.FileField(required=False)
content = forms.CharField(required=False, widget=forms.HiddenInput)