Fix create trade offer flow and other related bugs
This commit is contained in:
parent
f3a1366269
commit
65ca344582
40 changed files with 867 additions and 278 deletions
|
|
@ -3,6 +3,8 @@ from django.contrib.auth.forms import UserCreationForm, UserChangeForm
|
|||
from .models import CustomUser, FriendCode
|
||||
from allauth.account.forms import SignupForm
|
||||
from crispy_tailwind.tailwind import CSSContainer
|
||||
from crispy_forms.helper import FormHelper
|
||||
from crispy_forms.layout import Layout, Field, Submit
|
||||
|
||||
class CustomUserChangeForm(UserChangeForm):
|
||||
|
||||
|
|
@ -79,4 +81,9 @@ class CustomUserCreationForm(SignupForm):
|
|||
)
|
||||
user.default_friend_code = friend_code_pk
|
||||
user.save()
|
||||
return user
|
||||
return user
|
||||
|
||||
class UserSettingsForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = CustomUser
|
||||
fields = ['show_friend_code_on_link_previews']
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 5.1.2 on 2025-03-20 00:08
|
||||
# Generated by Django 5.1.2 on 2025-03-22 04:08
|
||||
|
||||
import django.contrib.auth.models
|
||||
import django.contrib.auth.validators
|
||||
|
|
@ -31,6 +31,7 @@ class Migration(migrations.Migration):
|
|||
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
|
||||
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
|
||||
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
|
||||
('show_friend_code_on_link_previews', models.BooleanField(default=False, help_text='This will primarily affect share link previews on X, Discord, etc.', verbose_name='Show Friend Code on Link Previews')),
|
||||
('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')),
|
||||
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -4,6 +4,11 @@ from django.core.exceptions import ValidationError
|
|||
|
||||
class CustomUser(AbstractUser):
|
||||
default_friend_code = models.ForeignKey("FriendCode", on_delete=models.SET_NULL, null=True, blank=True)
|
||||
show_friend_code_on_link_previews = models.BooleanField(
|
||||
default=False,
|
||||
verbose_name="Show Friend Code on Link Previews",
|
||||
help_text="This will primarily affect share link previews on X, Discord, etc."
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return self.email
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ from django.contrib.auth.mixins import LoginRequiredMixin
|
|||
from django.urls import reverse_lazy
|
||||
from django.shortcuts import redirect, get_object_or_404
|
||||
from django.views.generic import ListView, CreateView, DeleteView, View, TemplateView, UpdateView
|
||||
from accounts.models import FriendCode
|
||||
from accounts.forms import FriendCodeForm
|
||||
from accounts.models import FriendCode, CustomUser
|
||||
from accounts.forms import FriendCodeForm, UserSettingsForm
|
||||
from django.db.models import Case, When, Value, BooleanField
|
||||
|
||||
class ListFriendCodesView(LoginRequiredMixin, ListView):
|
||||
|
|
@ -123,11 +123,23 @@ class ChangeDefaultFriendCodeView(LoginRequiredMixin, View):
|
|||
messages.success(request, "Default friend code updated successfully.")
|
||||
return redirect("list_friend_codes")
|
||||
|
||||
class SettingsView(LoginRequiredMixin, TemplateView):
|
||||
# Updated SettingsView to update the new user setting.
|
||||
class SettingsView(LoginRequiredMixin, UpdateView):
|
||||
"""
|
||||
Display the user's settings.
|
||||
Display account navigation links and allow the user to update their friend code
|
||||
visibility setting.
|
||||
"""
|
||||
model = CustomUser
|
||||
form_class = UserSettingsForm
|
||||
template_name = "account/settings.html"
|
||||
success_url = reverse_lazy("settings")
|
||||
|
||||
def get_object(self):
|
||||
return self.request.user
|
||||
|
||||
def form_valid(self, form):
|
||||
messages.success(self.request, "Settings updated successfully.")
|
||||
return super().form_valid(form)
|
||||
|
||||
class ProfileView(LoginRequiredMixin, TemplateView):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue