Fixes redirect bug after character update, updates tests.
This commit is contained in:
parent
a5d0669734
commit
524df146e2
2 changed files with 17 additions and 5 deletions
|
|
@ -182,6 +182,14 @@ class CharacterUpdateView(EvenniaWebTest):
|
||||||
response = self.client.get(reverse(self.url_name, kwargs=self.get_kwargs()), follow=True)
|
response = self.client.get(reverse(self.url_name, kwargs=self.get_kwargs()), follow=True)
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
# Try to update char1 desc
|
||||||
|
data = {'db_key': self.char1.db_key, 'desc': "Just a regular type of dude."}
|
||||||
|
response = self.client.post(reverse(self.url_name, kwargs=self.get_kwargs()), data=data, follow=True)
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
# Make sure the change was made successfully
|
||||||
|
self.assertEqual(self.char1.db.desc, data['desc'])
|
||||||
|
|
||||||
def test_invalid_access(self):
|
def test_invalid_access(self):
|
||||||
"Account1 should not be able to update Account2:Char2"
|
"Account1 should not be able to update Account2:Char2"
|
||||||
# Login account
|
# Login account
|
||||||
|
|
|
||||||
|
|
@ -233,6 +233,10 @@ class ObjectUpdateView(LoginRequiredMixin, ObjectDetailView, EvenniaUpdateView):
|
||||||
model = class_from_module(settings.BASE_OBJECT_TYPECLASS)
|
model = class_from_module(settings.BASE_OBJECT_TYPECLASS)
|
||||||
access_type = 'edit'
|
access_type = 'edit'
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
if self.success_url: return self.success_url
|
||||||
|
return self.object.web_get_detail_url()
|
||||||
|
|
||||||
def get_initial(self):
|
def get_initial(self):
|
||||||
"""
|
"""
|
||||||
Override of Django hook.
|
Override of Django hook.
|
||||||
|
|
@ -273,7 +277,7 @@ class ObjectUpdateView(LoginRequiredMixin, ObjectDetailView, EvenniaUpdateView):
|
||||||
|
|
||||||
# Do not return super().form_valid; we don't want to update the model
|
# Do not return super().form_valid; we don't want to update the model
|
||||||
# instance, just its attributes.
|
# instance, just its attributes.
|
||||||
return HttpResponseRedirect(self.success_url)
|
return HttpResponseRedirect(self.get_success_url())
|
||||||
|
|
||||||
#
|
#
|
||||||
# Account views
|
# Account views
|
||||||
|
|
@ -317,6 +321,7 @@ class CharacterMixin(object):
|
||||||
|
|
||||||
model = class_from_module(settings.BASE_CHARACTER_TYPECLASS)
|
model = class_from_module(settings.BASE_CHARACTER_TYPECLASS)
|
||||||
form_class = CharacterForm
|
form_class = CharacterForm
|
||||||
|
success_url = reverse_lazy('character-manage')
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
# Get IDs of characters owned by account
|
# Get IDs of characters owned by account
|
||||||
|
|
@ -330,7 +335,7 @@ class CharacterPuppetView(LoginRequiredMixin, CharacterMixin, RedirectView, Obje
|
||||||
def get_redirect_url(self, *args, **kwargs):
|
def get_redirect_url(self, *args, **kwargs):
|
||||||
# Get the requested character, if it belongs to the authenticated user
|
# Get the requested character, if it belongs to the authenticated user
|
||||||
char = self.get_object()
|
char = self.get_object()
|
||||||
next = self.kwargs.get('next', reverse('character-manage'))
|
next = self.kwargs.get('next', self.success_url)
|
||||||
|
|
||||||
if char:
|
if char:
|
||||||
self.request.session['puppet'] = int(char.pk)
|
self.request.session['puppet'] = int(char.pk)
|
||||||
|
|
@ -353,12 +358,11 @@ class CharacterUpdateView(CharacterMixin, ObjectUpdateView):
|
||||||
template_name = 'website/character_form.html'
|
template_name = 'website/character_form.html'
|
||||||
|
|
||||||
class CharacterDeleteView(CharacterMixin, ObjectDeleteView):
|
class CharacterDeleteView(CharacterMixin, ObjectDeleteView):
|
||||||
success_url = reverse_lazy('character-manage')
|
pass
|
||||||
|
|
||||||
class CharacterCreateView(CharacterMixin, ObjectCreateView):
|
class CharacterCreateView(CharacterMixin, ObjectCreateView):
|
||||||
|
|
||||||
template_name = 'website/character_form.html'
|
template_name = 'website/character_form.html'
|
||||||
success_url = reverse_lazy('character-manage')
|
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
# Get account ref
|
# Get account ref
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue