Add to favorites functionality backend complete.

This commit is contained in:
Raelon Masters
2020-07-21 20:45:15 -04:00
parent 802a07e52f
commit 337600a74e
5 changed files with 31 additions and 22 deletions

View File

@@ -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",

View File

@@ -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)

View File

@@ -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

View File

@@ -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
pass
# return self.book
book = models.ForeignKey(Books.id, on_delete=models.PROTECT)
user = models.ForeignKey(get_user_model(), on_delete=models.PROTECT)
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:

View File

@@ -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')