mirror of
https://github.com/Southampton-RSG/breccia-mapper.git
synced 2026-03-03 03:17:07 +00:00
feat(people): Add view to create Person
User profile nav directs to create new Person for user if there is not one currently associated resolves issue #4
This commit is contained in:
@@ -2,9 +2,26 @@
|
||||
Views for displaying or manipulating models in the 'people' app.
|
||||
"""
|
||||
|
||||
from django.views.generic import DetailView, ListView
|
||||
from django.views.generic import CreateView, DetailView, ListView
|
||||
|
||||
from . import models
|
||||
from . import forms, models
|
||||
|
||||
|
||||
class PersonCreateView(CreateView):
|
||||
"""
|
||||
View to create a new instance of :class:`Person`.
|
||||
|
||||
If 'user' is passed as a URL parameter - link the new person to the current user.
|
||||
"""
|
||||
model = models.Person
|
||||
template_name = 'people/person/create.html'
|
||||
form_class = forms.PersonForm
|
||||
|
||||
def form_valid(self, form):
|
||||
if 'user' in self.request.GET:
|
||||
form.instance.user = self.request.user
|
||||
|
||||
return super().form_valid(form)
|
||||
|
||||
|
||||
class PersonListView(ListView):
|
||||
@@ -22,6 +39,18 @@ class ProfileView(DetailView):
|
||||
model = models.Person
|
||||
template_name = 'people/person/detail.html'
|
||||
|
||||
def get_object(self, queryset=None) -> models.Person:
|
||||
"""
|
||||
Get the :class:`Person` object to be represented by this page.
|
||||
|
||||
If not determined from url get current user.
|
||||
"""
|
||||
try:
|
||||
return super().get_object(queryset)
|
||||
|
||||
except AttributeError:
|
||||
return self.request.user.person
|
||||
|
||||
|
||||
class RelationshipDetailView(DetailView):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user