def new_publisher(request): FORM_TITLE_NEW = _('New Publisher') FORM_TITLE_EDIT = _('Editing %s') main = get_renderer(BASE_TEMPLATE).implementation() localizer = get_localizer(request) publisher_form = PublisherForm.get_form(localizer) if request.method == 'POST': controls = request.POST.items() try: appstruct = publisher_form.validate(controls) except deform.ValidationFailure, e: return {'content':e.render(), 'main':main, 'user':get_logged_user(request), 'form_stuff':{'form_title':FORM_TITLE_NEW}, } del(appstruct['__LOCALE__']) session = request.rel_db_session if 'slug' in request.matchdict: #edit slug = request.matchdict.get('slug') publisher = session.query(rel_models.Publisher).filter_by(name_slug=slug).one() publisher.email = appstruct['email'] publisher.publisher_url = appstruct['publisher_url'] else: #new publisher = rel_models.Publisher(**appstruct) session.add(publisher) try: session.commit() except IntegrityError: session.rollback() request.session.flash(_('This record already exists! Please check the data and try again.')) return {'content':publisher_form.render(appstruct), 'main':main, 'user':get_logged_user(request), 'form_stuff':{'form_title':FORM_TITLE_NEW}, } request.session.flash(_('Successfully added.')) return HTTPFound(location=request.route_url('staff.panel'))
def new_publisher(request): FORM_TITLE_NEW = _('New Publisher') FORM_TITLE_EDIT = '%s' main = get_renderer(BASE_TEMPLATE).implementation() localizer = get_localizer(request) publisher_form = PublisherForm.get_form(localizer) if request.method == 'POST': if 'btn_cancel' in request.POST: return HTTPFound( location=request.route_path('staff.publishers_list')) controls = request.POST.items() try: appstruct = publisher_form.validate(controls) except deform.ValidationFailure, e: return { 'content': e.render(), 'main': main, 'user': get_logged_user(request), 'general_stuff': { 'form_title': FORM_TITLE_NEW, 'breadcrumb': [ (_('Dashboard'), request.route_path('staff.panel')), (_('Manage Publishers'), request.route_path('staff.publishers_list')), (_('New Publisher'), None), ] }, } del (appstruct['__LOCALE__']) session = request.rel_db_session if 'slug' in request.matchdict: #edit slug = request.matchdict.get('slug') publisher = session.query( rel_models.Publisher).filter_by(name_slug=slug).one() publisher.email = appstruct['email'] publisher.publisher_url = appstruct['publisher_url'] else: #new publisher = rel_models.Publisher(**appstruct) session.add(publisher) try: session.commit() except IntegrityError: session.rollback() request.session.flash( _('This record already exists! Please check the data and try again.' )) return { 'content': publisher_form.render(appstruct), 'main': main, 'user': get_logged_user(request), 'general_stuff': { 'form_title': FORM_TITLE_NEW, 'breadcrumb': [ (_('Dashboard'), request.route_path('staff.panel')), (_('Manage Publishers'), request.route_path('staff.publishers_list')), (_('New Publisher'), None), ] }, } request.session.flash(_('Successfully added.')) return HTTPFound(location=request.route_path('staff.publishers_list'))