create group form

adds a group creation form to user dashboard
This commit is contained in:
Hugh Rundle
2021-09-24 14:12:36 +10:00
parent e07a25e288
commit 4e93b09067
7 changed files with 49 additions and 21 deletions

View File

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