def get_latest_comments(self, user=None): entries = [] if user: comments = Comment.select(Comment.q.author == user, orderBy=Comment.q.timestamp).reversed() else: comments = Comment.select(Comment.q.author != 'bodhi', orderBy=Comment.q.timestamp).reversed() for comment in comments: delta = datetime.utcnow() - comment.update.date_submitted if delta and delta.days > config.get('feeds.num_days_to_show'): if len(entries) >= config.get('feeds.max_entries'): break entries.append({ 'id' : config.get('base_address') + \ url(comment.update.get_url()), 'summary' : comment.text, 'published' : comment.timestamp, 'link' : config.get('base_address') + \ url(comment.update.get_url()), 'title' : "[%s] [%s] [%d]" % ( comment.update.title, comment.author, comment.karma) }) return dict( title = 'Latest Comments', subtitle = "", link = config.get('base_address') + url('/'), entries = entries, )
def get_latest_comments(self, user=None): entries = [] if user: comments = Comment.select(Comment.q.author == user, orderBy=Comment.q.timestamp).reversed() else: comments = Comment.select(Comment.q.author != 'bodhi', orderBy=Comment.q.timestamp).reversed() for comment in comments: delta = datetime.utcnow() - comment.update.date_submitted if delta and delta.days > config.get('feeds.num_days_to_show'): if len(entries) >= config.get('feeds.max_entries'): break entries.append({ 'id': config.get('base_address') + url(comment.update.get_url()), 'summary': comment.text, 'published': comment.timestamp, 'link': config.get('base_address') + url(comment.update.get_url()), 'title': "[%s] [%s] [%d]" % (comment.update.title, comment.author, comment.karma) }) return dict( title='Latest Comments', subtitle="", link=config.get('base_address') + url('/'), entries=entries, )
def clean_tables(): from bodhi.model import (Release, Package, PackageBuild, PackageUpdate, Comment, CVE, Bugzilla, BuildRootOverride) from bodhi.identity.tables import (Visit, VisitIdentity, Group, User, Permission) print "Cleaning out tables" Release.dropTable(ifExists=True, cascade=True) Package.dropTable(ifExists=True, cascade=True) PackageBuild.dropTable(ifExists=True, cascade=True) PackageUpdate.dropTable(ifExists=True, cascade=True) Comment.dropTable(ifExists=True, cascade=True) CVE.dropTable(ifExists=True, cascade=True) Bugzilla.dropTable(ifExists=True, cascade=True) BuildRootOverride.dropTable(ifExists=True, cascade=True) Visit.dropTable(ifExists=True, cascade=True) VisitIdentity.dropTable(ifExists=True, cascade=True) Group.dropTable(ifExists=True, cascade=True) User.dropTable(ifExists=True, cascade=True) Permission.dropTable(ifExists=True, cascade=True) hub.commit() Release.createTable(ifNotExists=True) Package.createTable(ifNotExists=True) PackageBuild.createTable(ifNotExists=True) PackageUpdate.createTable(ifNotExists=True) Comment.createTable(ifNotExists=True) CVE.createTable(ifNotExists=True) Bugzilla.createTable(ifNotExists=True) BuildRootOverride.createTable(ifNotExists=True) Visit.createTable(ifNotExists=True) VisitIdentity.createTable(ifNotExists=True) Group.createTable(ifNotExists=True) User.createTable(ifNotExists=True) Permission.createTable(ifNotExists=True)
def get_comment(self, update): return Comment(author='bodhi', text='foobar', karma=0, update=update)
def load_db(): print "\nLoading pickled database %s" % sys.argv[2] db = file(sys.argv[2], 'r') data = pickle.load(db) # Legacy format was just a list of update dictionaries # Now we'll pull things out into an organized dictionary: # {'updates': [], 'releases': []} if isinstance(data, dict): for release in data['releases']: try: Release.byName(release['name']) except SQLObjectNotFound: Release(**release) data = data['updates'] progress = ProgressBar(maxValue=len(data)) for u in data: try: release = Release.byName(u['release'][0]) except SQLObjectNotFound: release = Release(name=u['release'][0], long_name=u['release'][1], id_prefix=u['release'][2], dist_tag=u['release'][3]) ## Backwards compatbility request = u['request'] if u['request'] == 'move': request = 'stable' elif u['request'] == 'push': request = 'testing' elif u['request'] == 'unpush': request = 'obsolete' if u['approved'] in (True, False): u['approved'] = None if u.has_key('update_id'): u['updateid'] = u['update_id'] if not u.has_key('date_modified'): u['date_modified'] = None try: update = PackageUpdate.byTitle(u['title']) except SQLObjectNotFound: update = PackageUpdate(title=u['title'], date_submitted=u['date_submitted'], date_pushed=u['date_pushed'], date_modified=u['date_modified'], release=release, submitter=u['submitter'], updateid=u['updateid'], type=u['type'], status=u['status'], pushed=u['pushed'], notes=u['notes'], karma=u['karma'], request=request, approved=u['approved']) ## Create Package and PackageBuild objects for pkg, nvr in u['builds']: try: package = Package.byName(pkg) except SQLObjectNotFound: package = Package(name=pkg) try: build = PackageBuild.byNvr(nvr) except SQLObjectNotFound: build = PackageBuild(nvr=nvr, package=package) update.addPackageBuild(build) ## Create all Bugzilla objects for this update for bug_num, bug_title, security, parent in u['bugs']: try: bug = Bugzilla.byBz_id(bug_num) except SQLObjectNotFound: bug = Bugzilla(bz_id=bug_num, security=security, parent=parent) bug.title = bug_title update.addBugzilla(bug) ## Create all CVE objects for this update for cve_id in u['cves']: try: cve = CVE.byCve_id(cve_id) except SQLObjectNotFound: cve = CVE(cve_id=cve_id) update.addCVE(cve) for timestamp, author, text, karma, anonymous in u['comments']: comment = Comment(timestamp=timestamp, author=author, text=text, karma=karma, update=update, anonymous=anonymous) progress()