Changeset - 3dfc8c9b4baf
[Not reviewed]
0 1 0
ĎÚβĨŐÚŚ Dod - 10 months ago 2018-06-28 13:54:06
thedod@protonmail.ch
2 bug fixes in editor views

* `WTForms` instances get `__init__`-ed with `defaults` as `kwargs`.
The first arg is a `request.form` (which is what one must supply if
this is a `POST` and must *not* supply otherwise).
The content of that form (empty on `GET`) has higher priority than
the defaults (which makes the user get an empty form).

* Fix `edit_profile()` to allow changing `location` from a non-blank
value to blank (i.e. removing the location).

(cherry picked from commit 75f3e23b92392b9bd309fab4c1a52fd38d453627)
1 file changed with 13 insertions and 7 deletions:
0 comments (0 inline, 0 general)
mediagoblin/edit/views.py
Show inline comments
 
# GNU MediaGoblin -- federated, autonomous media hosting
 

	
 
# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 
#
 
# This program is free software: you can redistribute it and/or modify
...
 
@@ -70,7 +70,7 @@ def edit_media(request, media):
 
        license=media.license)
 

	
 
    form = forms.EditForm(
 
        request.form,
 
        request.method=='POST' and request.form or None,
 
        **defaults)
 

	
 
    if request.method == 'POST' and form.validate():
...
 
@@ -219,7 +219,8 @@ def edit_profile(request, url_user=None):
 
    else:
 
        location = user.get_location.name
 

	
 
    form = forms.EditProfileForm(request.form,
 
    form = forms.EditProfileForm(
 
        request.method == 'POST' and request.form or None,
 
        url=user.url,
 
        bio=user.bio,
 
        location=location)
...
 
@@ -235,6 +236,8 @@ def edit_profile(request, url_user=None):
 
            location = user.get_location
 
            location.name = six.text_type(form.location.data)
 
            location.save()
 
        else:
 
            user.location = None
 

	
 
        user.save()
 

	
...
 
@@ -260,7 +263,8 @@ EMAIL_VERIFICATION_TEMPLATE = (
 
@require_active_login
 
def edit_account(request):
 
    user = request.user
 
    form = forms.EditAccountForm(request.form,
 
    form = forms.EditAccountForm(
 
        request.method == 'POST' and request.form or None,
 
        wants_comment_notification=user.wants_comment_notification,
 
        license_preference=user.license_preference,
 
        wants_notifications=user.wants_notifications)
...
 
@@ -358,7 +362,7 @@ def edit_collection(request, collection):
 
        description=collection.description)
 

	
 
    form = forms.EditCollectionForm(
 
        request.form,
 
        request.method == 'POST' and request.form or None,
 
        **defaults)
 

	
 
    if request.method == 'POST' and form.validate():
...
 
@@ -454,7 +458,8 @@ def verify_email(request):
 
@require_active_login
 
def change_email(request):
 
    """ View to change the user's email """
 
    form = forms.ChangeEmailForm(request.form)
 
    form = forms.ChangeEmailForm(
 
        request.method == 'POST' and request.form or None)
 
    user = request.user
 

	
 
    # If no password authentication, no need to enter a password
...
 
@@ -511,7 +516,8 @@ def edit_metadata(request, media):
 
    if not media.state == u'processed':
 
        return render_404(request)
 

	
 
    form = forms.EditMetaDataForm(request.form)
 
    form = forms.EditMetaDataForm(
 
        request.method == 'POST' and request.form or None)
 
    if request.method == "POST" and form.validate():
 
        metadata_dict = dict([(row['identifier'],row['value'])
 
                            for row in form.media_metadata.data])
0 comments (0 inline, 0 general)