mirror of
https://github.com/evennia/evennia.git
synced 2026-03-22 15:56:30 +01:00
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)
|
||||
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):
|
||||
"Account1 should not be able to update Account2:Char2"
|
||||
# Login account
|
||||
|
|
|
|||
|
|
@ -233,6 +233,10 @@ class ObjectUpdateView(LoginRequiredMixin, ObjectDetailView, EvenniaUpdateView):
|
|||
model = class_from_module(settings.BASE_OBJECT_TYPECLASS)
|
||||
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):
|
||||
"""
|
||||
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
|
||||
# instance, just its attributes.
|
||||
return HttpResponseRedirect(self.success_url)
|
||||
return HttpResponseRedirect(self.get_success_url())
|
||||
|
||||
#
|
||||
# Account views
|
||||
|
|
@ -317,6 +321,7 @@ class CharacterMixin(object):
|
|||
|
||||
model = class_from_module(settings.BASE_CHARACTER_TYPECLASS)
|
||||
form_class = CharacterForm
|
||||
success_url = reverse_lazy('character-manage')
|
||||
|
||||
def get_queryset(self):
|
||||
# Get IDs of characters owned by account
|
||||
|
|
@ -330,7 +335,7 @@ class CharacterPuppetView(LoginRequiredMixin, CharacterMixin, RedirectView, Obje
|
|||
def get_redirect_url(self, *args, **kwargs):
|
||||
# Get the requested character, if it belongs to the authenticated user
|
||||
char = self.get_object()
|
||||
next = self.kwargs.get('next', reverse('character-manage'))
|
||||
next = self.kwargs.get('next', self.success_url)
|
||||
|
||||
if char:
|
||||
self.request.session['puppet'] = int(char.pk)
|
||||
|
|
@ -353,12 +358,11 @@ class CharacterUpdateView(CharacterMixin, ObjectUpdateView):
|
|||
template_name = 'website/character_form.html'
|
||||
|
||||
class CharacterDeleteView(CharacterMixin, ObjectDeleteView):
|
||||
success_url = reverse_lazy('character-manage')
|
||||
pass
|
||||
|
||||
class CharacterCreateView(CharacterMixin, ObjectCreateView):
|
||||
|
||||
|
||||
template_name = 'website/character_form.html'
|
||||
success_url = reverse_lazy('character-manage')
|
||||
|
||||
def form_valid(self, form):
|
||||
# Get account ref
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue