def do_upgrade(env, version, cursor): """Add `description` column to `enum` table.""" new_schema = [ Table('enum', key=('type', 'name'))[Column('type'), Column('name'), Column('value'), Column('description'), ] ] with env.db_transaction: DatabaseManager(env).upgrade_tables(new_schema) failures = [] for id_ in [1, 2, 3, 4, 5, 7, 8]: try: r = Report(env, id_) except ResourceNotFound: pass else: query = replace_sql_fragment(r.query) if query: r.query = query r.update() else: failures.append(unicode(id_)) if failures: printout( _("""\ Report(s) %(ids)s could not be upgraded and may need to be manually edited to avoid an "ambiguous column name" error. See %(url)s for more information. """, ids=', '.join(failures), url=url))
def _do_save(self, req, id): """Save report changes to the database""" req.perm(self.realm, id).require('REPORT_MODIFY') if 'cancel' not in req.args: report = Report(self.env, id) report.title = req.args.get('title', '') report.query = req.args.get('query', '') report.description = req.args.get('description', '') report.update() add_notice(req, _("Your changes have been saved.")) req.redirect(req.href.report(id))
def _do_create(self, req): req.perm(self.realm).require('REPORT_CREATE') if 'cancel' in req.args: req.redirect(req.href.report()) report = Report(self.env) report.title = req.args.get('title', '') report.query = req.args.get('query', '') report.description = req.args.get('description', '') report.insert() add_notice(req, _("The report has been created.")) req.redirect(req.href.report(report.id))