diff --git a/partners/templates/partners/dashboard.html b/partners/templates/partners/dashboard.html new file mode 100644 index 0000000000000000000000000000000000000000..13962bb3e040fc216040352c8d926a9175326ccd --- /dev/null +++ b/partners/templates/partners/dashboard.html @@ -0,0 +1,83 @@ +{% extends 'scipost/base.html' %} + +{% load bootstrap %} + +{% block pagetitle %}: partner page{% endblock pagetitle %} + +{% block content %} + + +<div class="row"> + <div class="col-12"> + <h1 class="highlight">Welcome to your SciPost Partner Page, {{ request.user }}</h1> + </div> +</div> + +<div class="row"> + <div class="col-12"> + <div class="tab-nav-container"> + <div class="tab-nav-inner"> + <!-- Nav tabs --> + <ul class="nav btn-group personal-page-nav" role="tablist"> + <li class="nav-item btn btn-secondary"> + <a href="#account" class="nav-link active" data-toggle="tab">Account</a> + </li> + <li class="nav-item btn btn-secondary"> + <a href="#agreements" class="nav-link" data-toggle="tab">Membership Agreements</a> + </li> + </ul> + </div> + </div> + </div> +</div> + +<div class="tab-content"> + <!-- Tab: Account --> + <div class="tab-pane active" id="account" role="tabpanel"> + <div class="row"> + <div class="col-12"> + <div class="card card-grey"> + <div class="card-block"> + <h2 class="card-title mb-0">Your Account</h2> + </div> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Your personal details:</h3> + {% include "scipost/_private_info_as_table.html" with contributor=request.user.contributor %} + </div> + <div class="col-md-6"> + <h3>Update your personal data or password</h3> + + <ul> + <li><a href="{% url 'scipost:update_personal_data' %}">Update your personal data</a></li> + <li><a href="{% url 'scipost:change_password' %}">Change your password</a></li> + </ul> + </div> + </div> + </div><!-- End tab --> + + <!-- Tab: Agreements --> + <div class="tab-pane" id="agreements" role="tabpanel"> + <div class="row"> + <div class="col-12"> + <div class="card card-grey"> + <div class="card-block"> + <h2 class="card-title mb-0">Membership Agreements</h2> + </div> + </div> + </div> + </div> + <div class="row"> + <div class="col-12"> + <h3>Your registered agreements</h3> + <p>None found.</p> + </div> + </div> + </div><!-- End tab --> +</div> + + +{% endblock content %} diff --git a/partners/urls.py b/partners/urls.py index ed50ba7595ef25515bfe6da02467211056449627..e86eae194d09a2b8c886f610d8daf300e268a69f 100644 --- a/partners/urls.py +++ b/partners/urls.py @@ -4,6 +4,7 @@ from . import views urlpatterns = [ url(r'^$', views.supporting_partners, name='partners'), + url(r'^dashboard$', views.dashboard, name='dashboard'), url(r'^membership_request$', views.membership_request, name='membership_request'), url(r'^manage$', views.manage, name='manage'), url(r'^add_prospective_partner$', views.add_prospective_partner, diff --git a/partners/views.py b/partners/views.py index 111dda8d8190b60812b4991328984d0519ee8984..e233fe5b88292a17b03af8c8c54f22c001c74ea7 100644 --- a/partners/views.py +++ b/partners/views.py @@ -5,7 +5,7 @@ from django.utils import timezone from guardian.decorators import permission_required -from .constants import PROSPECTIVE_PARTNER_REQUESTED, PROSPECTIVE_PARTNER_ADDED,\ +from .constants import PROSPECTIVE_PARTNER_REQUESTED,\ PROSPECTIVE_PARTNER_APPROACHED, PROSPECTIVE_PARTNER_ADDED,\ PROSPECTIVE_PARTNER_EVENT_REQUESTED, PROSPECTIVE_PARTNER_EVENT_EMAIL_SENT from .models import Partner, ProspectivePartner, ProspectiveContact,\ @@ -14,9 +14,9 @@ from .forms import ProspectivePartnerForm, ProspectiveContactForm,\ EmailProspectivePartnerContactForm,\ ProspectivePartnerEventForm, MembershipQueryForm -from common.utils import BaseMailUtil from .utils import PartnerUtils + def supporting_partners(request): context = {} if request.user.groups.filter(name='Editorial Administrators').exists(): @@ -26,6 +26,16 @@ def supporting_partners(request): return render(request, 'partners/supporting_partners.html', context) +@permission_required('scipost.can_read_personal_page', return_403=True) +def dashboard(request): + ''' + This page is meant as a personal page for Partners, where they will for example be able + to read their personal data and agreements. + ''' + context = {} + return render(request, 'partners/dashboard.html', context) + + @transaction.atomic def membership_request(request): query_form = MembershipQueryForm(request.POST or None) @@ -129,7 +139,6 @@ def email_prospartner_contact(request, contact_id): return render(request, 'partners/email_prospartner_contact.html', context) - @permission_required('scipost.can_manage_SPB', return_403=True) @transaction.atomic def add_prospartner_event(request, prospartner_id): diff --git a/scipost/management/commands/add_groups_and_permissions.py b/scipost/management/commands/add_groups_and_permissions.py index ef95e885debea981eff40c8f073b9cd336ad6148..2a887482783a78ee3b9e836e1b42f49219cbdd72 100644 --- a/scipost/management/commands/add_groups_and_permissions.py +++ b/scipost/management/commands/add_groups_and_permissions.py @@ -30,7 +30,6 @@ class Command(BaseCommand): PartnersAdmin, created = Group.objects.get_or_create(name='Partners Administrators') PartnersOfficers, created = Group.objects.get_or_create(name='Partners Officers') - # Create Permissions content_type = ContentType.objects.get_for_model(Contributor)