create group form
adds a group creation form to user dashboard
This commit is contained in:
@ -19,9 +19,39 @@ from django.views.decorators.http import require_POST
|
||||
from bookwyrm import forms, models
|
||||
from bookwyrm.connectors import connector_manager
|
||||
from bookwyrm.settings import PAGE_LENGTH
|
||||
from .helpers import is_api_request, privacy_filter
|
||||
from .helpers import privacy_filter
|
||||
from .helpers import get_user_from_username
|
||||
|
||||
class Group(View):
|
||||
"""group page"""
|
||||
|
||||
def get(self, request):
|
||||
"""display a group"""
|
||||
|
||||
groups = models.Group.objects.query(members__contains=request.user)
|
||||
groups = privacy_filter(
|
||||
request.user, groups, privacy_levels=["public", "followers"]
|
||||
)
|
||||
|
||||
paginated = Paginator(groups, 12)
|
||||
data = {
|
||||
"lists": paginated.get_page(request.GET.get("page")),
|
||||
"list_form": forms.GroupForm(),
|
||||
"path": "/group",
|
||||
}
|
||||
return TemplateResponse(request, "groups/group.html", data)
|
||||
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
# pylint: disable=unused-argument
|
||||
def post(self, request):
|
||||
"""create a book_list"""
|
||||
form = forms.ListForm(request.POST)
|
||||
if not form.is_valid():
|
||||
return redirect("lists")
|
||||
book_list = form.save()
|
||||
|
||||
return redirect(book_list.local_path)
|
||||
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
class UserGroups(View):
|
||||
"""a user's groups page"""
|
||||
@ -30,22 +60,14 @@ class UserGroups(View):
|
||||
"""display a group"""
|
||||
user = get_user_from_username(request.user, username)
|
||||
groups = models.GroupMember.objects.filter(user=user)
|
||||
# groups = privacy_filter(request.user, groups)
|
||||
groups = privacy_filter(request.user, groups)
|
||||
paginated = Paginator(groups, 12)
|
||||
|
||||
data = {
|
||||
"user": user,
|
||||
"is_self": request.user.id == user.id,
|
||||
"groups": paginated.get_page(request.GET.get("page")),
|
||||
"group_form": forms.GroupsForm(),
|
||||
"group_form": forms.GroupForm(),
|
||||
"path": user.local_path + "/groups",
|
||||
}
|
||||
return TemplateResponse(request, "user/groups.html", data)
|
||||
|
||||
# @require_POST
|
||||
# @login_required
|
||||
# def save_list(request, group_id):
|
||||
# """save a group"""
|
||||
# group = get_object_or_404(models.Group, id=group_id)
|
||||
# request.user.saved_group.add(group)
|
||||
# return redirect("user", request.user.id) # TODO: change this to group page
|
Reference in New Issue
Block a user