def read(self, id, format='html'): if not format == 'html': ctype, extension, loader = \ self._content_type_from_extension(format) if not ctype: # An unknown format, we'll carry on in case it is a # revision specifier and re-constitute the original id id = "%s.%s" % (id, format) ctype, format, loader = "text/html; charset=utf-8", "html", \ MarkupTemplate else: ctype, format, loader = self._content_type_from_accept() response.headers['Content-Type'] = ctype package_type = self._get_package_type(id.split('@')[0]) context = { 'model': model, 'session': model.Session, 'user': c.user or c.author, 'for_view': True, 'auth_user_obj': c.userobj } data_dict = {'id': id} # interpret @<revision_id> or @<date> suffix split = id.split('@') if len(split) == 2: data_dict['id'], revision_ref = split if model.is_id(revision_ref): context['revision_id'] = revision_ref else: try: date = h.date_str_to_datetime(revision_ref) context['revision_date'] = date except TypeError, e: abort(400, _('Invalid revision format: %r') % e.args) except ValueError, e: abort(400, _('Invalid revision format: %r') % e.args)
abort(401, _('Unauthorized to read package %s') % '') except NotFound: abort(404, _('Dataset not found')) format = request.params.get('format', '') if format == 'atom': # Generate and return Atom 1.0 document. from webhelpers.feedgenerator import Atom1Feed feed = Atom1Feed( title=_(u'CKAN Dataset Revision History'), link=h.url_for(controller='revision', action='read', id=c.pkg_dict['name']), description=_(u'Recent changes to CKAN Dataset: ') + (c.pkg_dict['title'] or ''), language=unicode(get_lang()), ) for revision_dict in c.pkg_revisions: revision_date = h.date_str_to_datetime(revision_dict['timestamp']) try: dayHorizon = int(request.params.get('days')) except: dayHorizon = 30 dayAge = (datetime.datetime.now() - revision_date).days if dayAge >= dayHorizon: break if revision_dict['message']: item_title = u'%s' % revision_dict['message'].split('\n')[0] else: item_title = u'%s' % revision_dict['id'] item_link = h.url_for(controller='revision', action='read', id=revision_dict['id']) item_description = _('Log message: ') item_description += '%s' % (revision_dict['message'] or '') item_author_name = revision_dict['author']
format = request.params.get('format', '') if format == 'atom': # Generate and return Atom 1.0 document. from webhelpers.feedgenerator import Atom1Feed feed = Atom1Feed( title=_(u'CKAN Package Revision History'), link=h.url_for(controller='revision', action='read', id=c.pkg_dict['name']), description=_(u'Recent changes to CKAN Package: ') + (c.pkg_dict['title'] or ''), language=unicode(get_lang()), ) for revision_dict in c.pkg_revisions: revision_date = h.date_str_to_datetime( revision_dict['timestamp']) try: dayHorizon = int(request.params.get('days')) except: dayHorizon = 30 dayAge = (datetime.datetime.now() - revision_date).days if dayAge >= dayHorizon: break if revision_dict['message']: item_title = u'%s' % revision_dict['message'].split( '\n')[0] else: item_title = u'%s' % revision_dict['id'] item_link = h.url_for(controller='revision', action='read', id=revision_dict['id'])
except NotFound: abort(404, _("Dataset not found")) format = request.params.get("format", "") if format == "atom": # Generate and return Atom 1.0 document. from webhelpers.feedgenerator import Atom1Feed feed = Atom1Feed( title=_(u"CKAN Dataset Revision History"), link=h.url_for(controller="revision", action="read", id=c.pkg_dict["name"]), description=_(u"Recent changes to CKAN Dataset: ") + (c.pkg_dict["title"] or ""), language=unicode(get_lang()), ) for revision_dict in c.pkg_revisions: revision_date = h.date_str_to_datetime(revision_dict["timestamp"]) try: dayHorizon = int(request.params.get("days")) except: dayHorizon = 30 dayAge = (datetime.datetime.now() - revision_date).days if dayAge >= dayHorizon: break if revision_dict["message"]: item_title = u"%s" % revision_dict["message"].split("\n")[0] else: item_title = u"%s" % revision_dict["id"] item_link = h.url_for(controller="revision", action="read", id=revision_dict["id"]) item_description = _("Log message: ") item_description += "%s" % (revision_dict["message"] or "") item_author_name = revision_dict["author"]
class feedGroupController(GroupController): def history(self, id): if 'diff' in request.params or 'selected1' in request.params: try: params = {'id':request.params.getone('group_name'), 'diff':request.params.getone('selected1'), 'oldid':request.params.getone('selected2'), } except KeyError, e: if dict(request.params).has_key('group_name'): id = request.params.getone('group_name') c.error = _('Select two revisions before doing the comparison.') else: params['diff_entity'] = 'group' h.redirect_to(controller='revision', action='diff', **params) context = {'model': model, 'session': model.Session, 'user': c.user or c.author, 'schema': self._form_to_db_schema()} data_dict = {'id': id} try: c.group_dict = get_action('group_show')(context, data_dict) c.group_revisions = get_action('group_revision_list')(context, data_dict) c.group = context['group'] except NotFound: abort(404, _('Group not found')) except NotAuthorized: abort(401, _('User %r not authorized to edit %r') % (c.user, id)) onlycreated = request.params.get('created', '') feed_title=u'RSS-Feed - Geänderte Datensätze - %s - data.gv.at' % c.group_dict['display_name'] feed_description=_(u'Letzte Änderungen: ') + c.group_dict['display_name'] if onlycreated == '1': feed_title=u'RSS-Feed - Neue Datensätze - %s - data.gv.at' % c.group_dict['display_name'] feed_description=_(u'Neue Datensätze: ') + c.group_dict['display_name'] format = request.params.get('format', '') if format == 'atom': # Generate and return Atom 1.0 document. from webhelpers.feedgenerator import Atom1Feed feed = Atom1Feed( title=_(u'CKAN Group Revision History'), link=h.url_for(controller='group', action='read', id=c.group_dict['name']), description=_(u'Recent changes to CKAN Group: ') + c.group_dict['display_name'], language=unicode(get_lang()), ) for revision_dict in c.group_revisions: revision_date = h.date_str_to_datetime(revision_dict['timestamp']) try: dayHorizon = int(request.params.get('days')) except: dayHorizon = 30 dayAge = (datetime.datetime.now() - revision_date).days if dayAge >= dayHorizon: break if revision_dict['message']: item_title = u'%s' % revision_dict['message'].split('\n')[0] else: item_title = u'%s' % revision_dict['id'] item_link = h.url_for(controller='revision', action='read', id=revision_dict['id']) item_description = _('Log message: ') item_description += '%s' % (revision_dict['message'] or '') item_author_name = revision_dict['author'] item_pubdate = revision_date feed.add_item( title=item_title, link=item_link, description=item_description, author_name=item_author_name, pubdate=item_pubdate, ) feed.content_type = 'application/atom+xml' return feed.writeString('utf-8') return render( self._history_template(c.group_dict['type']) )