Adds actor
This commit is contained in:
@ -4,12 +4,12 @@ from django.contrib.auth import authenticate, login, logout
|
||||
from django.shortcuts import redirect
|
||||
from django.template.response import TemplateResponse
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from fedireads.models import Shelf
|
||||
from fedireads import models
|
||||
|
||||
@login_required
|
||||
def home(request):
|
||||
''' user feed '''
|
||||
shelves = Shelf.objects.filter(user=request.user.id)
|
||||
shelves = models.Shelf.objects.filter(user=request.user.id)
|
||||
data = {
|
||||
'user': request.user,
|
||||
'shelves': shelves,
|
||||
@ -35,5 +35,60 @@ def user_login(request):
|
||||
@csrf_exempt
|
||||
@login_required
|
||||
def user_logout(request):
|
||||
''' done with this place! outa here! '''
|
||||
logout(request)
|
||||
return redirect('/')
|
||||
|
||||
|
||||
@login_required
|
||||
def user_profile(request, username):
|
||||
''' profile page for a user '''
|
||||
user = models.User.objects.get(username=username)
|
||||
books = models.Book.objects.filter(shelves__user=user)
|
||||
following = user.followers.filter(id=request.user.id).count() > 0
|
||||
data = {
|
||||
'user': user,
|
||||
'books': books,
|
||||
'is_self': request.user.id == user.id,
|
||||
'following': following,
|
||||
}
|
||||
return TemplateResponse(request, 'user.html', data)
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
@login_required
|
||||
def follow(request):
|
||||
followed = request.POST.get('user')
|
||||
followed = models.User.objects.get(id=followed)
|
||||
followed.followers.add(request.user)
|
||||
activity = {
|
||||
'@context': 'https://www.w3.org/ns/activitystreams',
|
||||
'summary': '',
|
||||
'type': 'Follow',
|
||||
'actor': {
|
||||
'type': 'Person',
|
||||
'name': request.user.get_actor(),
|
||||
},
|
||||
'object': {
|
||||
'type': 'Person',
|
||||
'name': followed.get_actor(),
|
||||
}
|
||||
}
|
||||
|
||||
models.Activity(
|
||||
data=activity,
|
||||
user=request.user,
|
||||
)
|
||||
|
||||
return redirect('/user/%s' % followed.username)
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
@login_required
|
||||
def unfollow(request):
|
||||
followed = request.POST.get('user')
|
||||
followed = models.User.objects.get(id=followed)
|
||||
followed.followers.remove(request.user)
|
||||
return redirect('/user/%s' % followed.username)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user