def media_home(request, media, page, **kwargs): """ 'Homepage' of a MediaEntry() """ if ObjectId(request.matchdict.get('comment')): pagination = Pagination( page, media.get_comments( mg_globals.app_config['comments_ascending']), MEDIA_COMMENTS_PER_PAGE, ObjectId(request.matchdict.get('comment'))) else: pagination = Pagination( page, media.get_comments( mg_globals.app_config['comments_ascending']), MEDIA_COMMENTS_PER_PAGE) comments = pagination() comment_form = user_forms.MediaCommentForm(request.form) media_template_name = get_media_manager( media.media_type)['display_template'] return render_to_response( request, media_template_name, {'media': media, 'comments': comments, 'pagination': pagination, 'comment_form': comment_form, 'app_config': mg_globals.app_config})
def run(self, media_id): """ Pass the media entry off to the appropriate processing function (for now just process_image...) """ entry = mgg.database.MediaEntry.one( {'_id': ObjectId(media_id)}) # Try to process, and handle expected errors. try: manager = get_media_manager(entry.media_type) entry.state = u'processing' entry.save() _log.debug('Processing {0}'.format(entry)) manager['processor'](entry) entry.state = u'processed' entry.save() json_processing_callback(entry) except BaseProcessingFail as exc: mark_entry_failed(entry._id, exc) json_processing_callback(entry) return except ImportError as exc: _log.error( 'Entry {0} failed to process due to an import error: {1}'\ .format( entry.title, exc)) mark_entry_failed(entry._id, exc) json_processing_callback(entry) except Exception as exc: _log.error('An unhandled exception was raised while' + ' processing {0}'.format( entry)) mark_entry_failed(entry._id, exc) json_processing_callback(entry) raise