First crack at basic license support.

This commit is contained in:
Aaron Williamson 2012-01-17 00:33:55 -05:00
parent 98308e61b6
commit 25b48323a8
6 changed files with 30 additions and 3 deletions

View File

@ -24,6 +24,7 @@ from mediagoblin.db import migrations
from mediagoblin.db.util import ASCENDING, DESCENDING, ObjectId
from mediagoblin.tools.pagination import Pagination
from mediagoblin.tools import url, common
from mediagoblin.tools import licenses
###################
# Custom validators
@ -158,6 +159,8 @@ class MediaEntry(Document):
"unprocessed": uploaded but needs to go through processing for display
"processed": processed and able to be displayed
- license: URI for entry's license
- queued_media_file: storage interface style filepath describing a file
queued for processing. This is stored in the mg_globals.queue_store
storage system.
@ -174,6 +177,7 @@ class MediaEntry(Document):
- fail_error: path to the exception raised
- fail_metadata:
"""
__collection__ = 'media_entries'
@ -189,6 +193,7 @@ class MediaEntry(Document):
'plugin_data': dict, # plugins can dump stuff here.
'tags': [dict],
'state': unicode,
'license': unicode, # License URI
# For now let's assume there can only be one main file queued
# at a time
@ -304,6 +309,10 @@ class MediaEntry(Document):
if self['fail_error']:
return common.import_component(self['fail_error'])
def get_license_data(self):
"""Return license dict for requested license"""
return licenses.SUPPORTED_LICENSES[self['license']]
class MediaComment(Document):
"""

View File

@ -18,6 +18,7 @@ import wtforms
from mediagoblin.tools.text import tag_length_validator, TOO_LONG_TAG_WARNING
from mediagoblin.tools.translate import fake_ugettext_passthrough as _
from mediagoblin.tools.licenses import licenses_as_choices
class EditForm(wtforms.Form):
title = wtforms.TextField(
@ -33,7 +34,9 @@ class EditForm(wtforms.Form):
description=_(
"The title part of this media's URL. "
"You usually don't need to change this."))
license = wtforms.SelectField(
_('License'),
choices=licenses_as_choices())
class EditProfileForm(wtforms.Form):
bio = wtforms.TextAreaField(

View File

@ -34,6 +34,7 @@ from mediagoblin.tools.translate import pass_to_ugettext as _
from mediagoblin.tools.text import (
clean_html, convert_to_tag_list_of_dicts,
media_tags_as_string, cleaned_markdown_conversion)
from mediagoblin.tools.licenses import SUPPORTED_LICENSES
@get_user_media_entry
@require_active_login
@ -45,7 +46,8 @@ def edit_media(request, media):
title=media['title'],
slug=media['slug'],
description=media['description'],
tags=media_tags_as_string(media['tags']))
tags=media_tags_as_string(media['tags']),
license=media['license'])
form = forms.EditForm(
request.POST,
@ -71,6 +73,10 @@ def edit_media(request, media):
media['description_html'] = cleaned_markdown_conversion(
media['description'])
media['license'] = (
unicode(request.POST.get('license'))
or '')
media['slug'] = unicode(request.POST['slug'])
media.save()

View File

@ -19,7 +19,7 @@ import wtforms
from mediagoblin.tools.text import tag_length_validator
from mediagoblin.tools.translate import fake_ugettext_passthrough as _
from mediagoblin.tools.licenses import licenses_as_choices
class SubmitStartForm(wtforms.Form):
file = wtforms.FileField(_('File'))
@ -31,3 +31,6 @@ class SubmitStartForm(wtforms.Form):
tags = wtforms.TextField(
_('Tags'),
[tag_length_validator])
license = wtforms.SelectField(
_('License'),
choices=licenses_as_choices())

View File

@ -60,6 +60,10 @@ def submit_start(request):
entry['description'] = unicode(request.POST.get('description'))
entry['description_html'] = cleaned_markdown_conversion(
entry['description'])
entry['license'] = (
unicode(request.POST.get('license'))
or '')
entry['media_type'] = u'image' # heh
entry['uploader'] = request.user['_id']

View File

@ -171,6 +171,8 @@
{% if media.tags %}
{% include "mediagoblin/utils/tags.html" %}
{% endif %}
{% include "mediagoblin/utils/license.html" %}
</div>
{% else %}
<p>{% trans %}Sorry, no such media found.{% endtrans %}<p/>