示例#1
0
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'))
示例#2
0
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'))