From 337600a74ef2dbe348750da83cc88b19f919ce3f Mon Sep 17 00:00:00 2001 From: Raelon Masters Date: Tue, 21 Jul 2020 20:45:15 -0400 Subject: [PATCH] Add to favorites functionality backend complete. --- src/frontend/settings.py | 2 +- src/interface/admin.py | 6 +++--- src/interface/forms.py | 12 ++++++------ src/interface/models.py | 25 ++++++++++++++++--------- src/interface/views.py | 8 +++++--- 5 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/frontend/settings.py b/src/frontend/settings.py index ce8927f..ef4e3e5 100755 --- a/src/frontend/settings.py +++ b/src/frontend/settings.py @@ -52,7 +52,7 @@ INSTALLED_APPS = [ "interface.templatetags", "debug_toolbar", ] -AUTH_USER_MODEL = "interface.CustomUser" +AUTH_USER_MODEL = "interface.User" MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", diff --git a/src/interface/admin.py b/src/interface/admin.py index 9a9db2e..96c61be 100755 --- a/src/interface/admin.py +++ b/src/interface/admin.py @@ -1,12 +1,12 @@ from django.contrib import admin from django.contrib.auth.admin import UserAdmin -from .models import Books, Collections, Favorites, Navigation, CustomUser +from .models import Books, Collections, Favorites, Navigation, User from .forms import CustomUserCreationForm, CustomUserChangeForm class CustomUserAdmin(UserAdmin): - model = CustomUser + model = User add_form = CustomUserCreationForm form = CustomUserChangeForm list_display = ["email", "username", "facebook", "twitter", "sponsorid", "matrixid"] @@ -27,4 +27,4 @@ admin.site.register(Books) admin.site.register(Collections) admin.site.register(Favorites) admin.site.register(Navigation) -admin.site.register(CustomUser, CustomUserAdmin) +admin.site.register(User, CustomUserAdmin) diff --git a/src/interface/forms.py b/src/interface/forms.py index 1807b14..b345393 100644 --- a/src/interface/forms.py +++ b/src/interface/forms.py @@ -1,23 +1,23 @@ from django import forms from django.contrib.auth.forms import UserCreationForm, UserChangeForm, AuthenticationForm -from .models import CustomUser +from .models import User class CustomUserCreationForm(UserCreationForm): class Meta: - model = CustomUser + model = User fields = ("username", "email", "facebook", "twitter", "sponsorid", "matrixid") class CustomUserChangeForm(UserChangeForm): class Meta: - model = CustomUser + model = User fields = ("username", "email", "facebook", "twitter", "sponsorid", "matrixid") class CustomUserLoginForm(AuthenticationForm): class Meta: - Model = CustomUser + Model = User fields = ("username", "password") @@ -27,11 +27,11 @@ class SignUpForm(CustomUserCreationForm): matrixid = forms.CharField(max_length=30, required=False, help_text='Optional.') class Meta: - model = CustomUser + model = User fields = ("username", "email", "matrixid") class UserLoginForm(CustomUserLoginForm): class Meta: - model = CustomUser + model = User diff --git a/src/interface/models.py b/src/interface/models.py index d625037..3d1e013 100755 --- a/src/interface/models.py +++ b/src/interface/models.py @@ -111,32 +111,39 @@ class Navigation(models.Model): return results -class CustomUser(AbstractUser): +class User(AbstractUser): facebook = models.CharField(max_length=255, null=True) twitter = models.CharField(max_length=255, null=True) ulvl = models.IntegerField(default=1) sponsorid = models.IntegerField(null=True) matrixid = models.CharField(max_length=255, null=True) + def __str__(self): + return self.username + class Favorites(models.Model): """ - pyShelfs User Database class - :param uname: User Name - :param fname: First Name + Favorites Database class + :param book: book foreign key + :param user: user foreign key """ class Meta: db_table = "favorites" def __str__(self): - return self.title - - book = models.ForeignKey(Books.id, on_delete=models.PROTECT) - user = models.ForeignKey(get_user_model(), on_delete=models.PROTECT) + pass + # return self.book + + book = models.ForeignKey(Books, on_delete=models.CASCADE) + user = models.ForeignKey( + User, + on_delete=models.CASCADE + ) def generic_search(self, query): try: - results = Favorites.objects.annotate(search=SearchVector("uname"),).filter( + results = Favorites.objects.annotate(search=SearchVector("user"),).filter( search=query ) except Exception as e: diff --git a/src/interface/views.py b/src/interface/views.py index 87695dc..3eaf61b 100755 --- a/src/interface/views.py +++ b/src/interface/views.py @@ -14,7 +14,7 @@ from django.conf import settings from django.contrib.auth import get_user_model import json from .forms import SignUpForm, UserLoginForm -from .models import Books, Collections, Navigation, Favorites, CustomUser +from .models import Books, Collections, Navigation, Favorites, User config = Config(Path("../")) @@ -51,11 +51,13 @@ def signup(request): def userlogin(request): if request.method == 'POST': + breakpoint() username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) + user.save() return redirect('home') form = UserLoginForm() return render(request, 'login.html', {'form': form}) @@ -219,9 +221,9 @@ def favorite(request, pk): """ Add book to favorites bu primary key """ - breakpoint() f = Favorites(book=Books.objects.get(pk=pk)) - f.save + f.user = request.user + f.save() return redirect('home')