From 06a24c5899f0dfc1b539d769d403b5ab0c57d64a Mon Sep 17 00:00:00 2001 From: Stephan Telling Date: Sun, 21 May 2017 16:05:31 +0200 Subject: [PATCH] make manage page part of detail page --- src/bornhack/urls.py | 11 ----- src/teams/templates/team_detail.html | 55 ++++++++++++++++++++++ src/teams/templates/team_manage.html | 68 ---------------------------- src/teams/views.py | 16 +------ 4 files changed, 57 insertions(+), 93 deletions(-) delete mode 100644 src/teams/templates/team_manage.html diff --git a/src/bornhack/urls.py b/src/bornhack/urls.py index baf3eb5b..7d666749 100644 --- a/src/bornhack/urls.py +++ b/src/bornhack/urls.py @@ -1,16 +1,10 @@ from allauth.account.views import ( - SignupView, LoginView, LogoutView, - ConfirmEmailView, - EmailVerificationSentView, - PasswordResetView ) from django.conf import settings from django.conf.urls import include, url from django.contrib import admin -from django.views.generic import TemplateView, RedirectView -from django.core.urlresolvers import reverse_lazy from camps.views import * from info.views import * from villages.views import * @@ -301,11 +295,6 @@ urlpatterns = [ TeamLeaveView.as_view(), name='team_leave' ), - url( - r'(?P[-_\w+]+)/manage/$', - TeamManageView.as_view(), - name='team_manage' - ), # this has to be the last url in the list url( r'(?P[-_\w+]+)/$', diff --git a/src/teams/templates/team_detail.html b/src/teams/templates/team_detail.html index c71994cb..31a1feed 100644 --- a/src/teams/templates/team_detail.html +++ b/src/teams/templates/team_detail.html @@ -1,6 +1,7 @@ {% extends 'base.html' %} {% load commonmark %} {% load teams_tags %} +{% load bootstrap3 %} {% block title %} Team: {{ team.name }} | {{ block.super }} @@ -33,4 +34,58 @@ Team: {{ team.name }} | {{ block.super }}
  • {{ resp.get_full_name|default:"Unnamed" }}
  • {% endfor %} + +{% if request.user in team.responsible %} + +

    Manage {{ team.name }} Team

    +
    + {% csrf_token %} + + {% bootstrap_form form %} + +
    + + {% buttons %} + + {% endbuttons %} +
    + +
    +
    + + + + + + {% for member in team.teammember_set.all %} + +
    + Profile + + Name + + Status + + Email + + Description + + Action + +
    + {{ member.user }} + + {{ member.user.profile.name }} + + {{ member.approved }} + + {{ member.user.profile.email }} + + {{ member.user.profile.description }} + + TBD + {% endfor %} + +{% endif %} + {% endblock %} diff --git a/src/teams/templates/team_manage.html b/src/teams/templates/team_manage.html deleted file mode 100644 index fbd1e412..00000000 --- a/src/teams/templates/team_manage.html +++ /dev/null @@ -1,68 +0,0 @@ -{% extends 'base.html' %} -{% load commonmark %} -{% load teams_tags %} -{% load bootstrap3 %} - -{% block title %} -Team: {{ team.name }} | {{ block.super }} -{% endblock %} - -{% block content %} - -

    Manage {{ team.name }} Team

    - -{% if request.user in team.responsible or team.area.responsible %} -
    - {% csrf_token %} - - {% bootstrap_form form %} - -
    - - {% buttons %} - - {% endbuttons %} -
    - -
    -
    -{% endif %} - -

    Memberships of the {{ team.name }} team

    - - - - - - {% for member in team.teammember_set.all %} - -
    - Profile - - Name - - Status - - Email - - Description - -
    - {{ member.user }} - - {{ member.user.profile.name }} - - - {% if member.approved %} - - {% else %} - - {% endif %} - - {{ member.user.profile.email }} - - {{ member.user.profile.description }} - - {% endfor %} - -{% endblock %} diff --git a/src/teams/views.py b/src/teams/views.py index 823f391c..885b865c 100644 --- a/src/teams/views.py +++ b/src/teams/views.py @@ -6,7 +6,6 @@ from .forms import ManageTeamForm from django.contrib.auth.mixins import LoginRequiredMixin from django.shortcuts import redirect from django.contrib import messages -from django.http import Http404 class TeamListView(CampViewMixin, ListView): @@ -15,9 +14,10 @@ class TeamListView(CampViewMixin, ListView): context_object_name = 'teams' -class TeamDetailView(CampViewMixin, DetailView): +class TeamDetailView(CampViewMixin, DetailView, UpdateView, FormView): template_name = "team_detail.html" model = Team + form_class = ManageTeamForm context_object_name = 'team' @@ -59,15 +59,3 @@ class TeamLeaveView(LoginRequiredMixin, CampViewMixin, UpdateView): TeamMember.objects.filter(team=self.get_object(), user=self.request.user).delete() messages.success(self.request, "You are no longer a member of the team %s" % self.get_object().name) return redirect('team_list', camp_slug=self.get_object().camp.slug) - - -class TeamManageView(LoginRequiredMixin, CampViewMixin, UpdateView, FormView): - template_name = 'team_manage.html' - model = Team - form_class = ManageTeamForm - - def get(self, request, *args, **kwargs): - if not request.user.is_staff: - raise Http404() - - return super().get(request, *args, **kwargs)