diff options
author | Jessica Tallon <jessica@megworld.co.uk> | 2014-10-09 19:20:13 +0100 |
---|---|---|
committer | Jessica Tallon <jessica@megworld.co.uk> | 2014-10-09 19:20:13 +0100 |
commit | ed48454558a91961b6e03fc51b8a4bf785d48d1e (patch) | |
tree | 792294c842fe5643a2d8f66be366805f621d4ece /mediagoblin/edit | |
parent | 9a1fc423ac298c2ddf078d91ea1302c135285781 (diff) | |
parent | c0434db46910e891313495b5ae94cbbe1dd08058 (diff) | |
download | mediagoblin-ed48454558a91961b6e03fc51b8a4bf785d48d1e.tar.lz mediagoblin-ed48454558a91961b6e03fc51b8a4bf785d48d1e.tar.xz mediagoblin-ed48454558a91961b6e03fc51b8a4bf785d48d1e.zip |
Merge branch 'location'
Add Location model which holds textual, geolocation coordiantes
or postal addresses. This migrates data off Image model metadata
onto the general Location model. It also adds the ability for location
to be set on MediaEntry, User, MediaComment and Collection models.
The geolocation plugin has been updated so that the location can be displayed
in more general places rather than explicitely on the MediaEntry view.
If GPS coordiantes are set for the User the profile page will also have the
OSM provided by the geolocation plugin.
Diffstat (limited to 'mediagoblin/edit')
-rw-r--r-- | mediagoblin/edit/forms.py | 1 | ||||
-rw-r--r-- | mediagoblin/edit/views.py | 21 |
2 files changed, 19 insertions, 3 deletions
diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index c0bece8b..f0a03e04 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -61,6 +61,7 @@ class EditProfileForm(wtforms.Form): [wtforms.validators.Optional(), wtforms.validators.URL(message=_("This address contains errors"))]) + location = wtforms.TextField(_('Hometown')) class EditAccountForm(wtforms.Form): wants_comment_notification = wtforms.BooleanField( diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 2ccf11ae..30a32a7e 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -47,7 +47,7 @@ from mediagoblin.tools.text import ( convert_to_tag_list_of_dicts, media_tags_as_string) from mediagoblin.tools.url import slugify from mediagoblin.db.util import check_media_slug_used, check_collection_slug_used -from mediagoblin.db.models import User, Client, AccessToken +from mediagoblin.db.models import User, Client, AccessToken, Location import mimetypes @@ -202,14 +202,29 @@ def edit_profile(request, url_user=None): user = url_user + # Get the location name + if user.location is None: + location = "" + else: + location = user.get_location.name + form = forms.EditProfileForm(request.form, url=user.url, - bio=user.bio) + bio=user.bio, + location=location) if request.method == 'POST' and form.validate(): user.url = six.text_type(form.url.data) user.bio = six.text_type(form.bio.data) + # Save location + if form.location.data and user.location is None: + user.get_location = Location(name=unicode(form.location.data)) + elif form.location.data: + location = user.get_location.name + location.name = unicode(form.location.data) + location.save() + user.save() messages.add_message(request, @@ -480,7 +495,7 @@ def edit_metadata(request, media): json_ld_metadata = compact_and_validate(metadata_dict) media.media_metadata = json_ld_metadata media.save() - return redirect_obj(request, media) + return redirect_obj(request, media) if len(form.media_metadata) == 0: for identifier, value in six.iteritems(media.media_metadata): |