def delete_entry(request):
    """
    This view lets accountants delete entries (doublettes)
    """
    memberid = request.matchdict["memberid"]
    dashboard_page = request.cookies["on_page"]
    _member = C3sMember.get_by_id(memberid)

    C3sMember.delete_by_id(_member.id)
    log.info("member.id %s was deleted by %s" % (_member.id, request.user.login))

    return HTTPFound(request.route_url("dashboard", number=dashboard_page))
Esempio n. 2
0
def delete_entry(request):
    """
    This view lets accountants delete entries (doublettes)
    """
    memberid = request.matchdict['memberid']
    _member = C3sMember.get_by_id(memberid)

    C3sMember.delete_by_id(_member.id)
    log.info(
        "member.id %s was deleted by %s" % (
            _member.id,
            request.user.login,
        )
    )
    return HTTPFound(
        request.route_url('dashboard_only',  _query={'message': 'Member with id {0} was deleted.'.format(memberid)}))
Esempio n. 3
0
def delete_entry(request):
    """
    This view lets accountants delete entries (doublettes)
    """
    memberid = request.matchdict['memberid']
    dashboard_page = request.cookies['on_page']
    _member = C3sMember.get_by_id(memberid)

    C3sMember.delete_by_id(_member.id)
    log.info("member.id %s was deleted by %s" % (
        _member.id,
        request.user.login,
    ))

    return HTTPFound(request.route_url(
        'dashboard',
        number=dashboard_page,
    ))
Esempio n. 4
0
def delete_entry(request):
    """
    This view lets accountants delete datasets (e.g. doublettes, test entries).
    """

    deletion_confirmed = (request.params.get('deletion_confirmed', '0') == '1')
    redirection_view = request.params.get('redirect', 'dashboard')
    LOG.info('redirect to: ' + str(redirection_view))

    if deletion_confirmed:
        memberid = request.matchdict['memberid']
        member = C3sMember.get_by_id(memberid)
        member_lastname = member.lastname
        member_firstname = member.firstname

        C3sMember.delete_by_id(member.id)
        LOG.info(
            "member.id %s was deleted by %s",
            member.id,
            request.user.login,
        )
        message = "member.id %s was deleted" % member.id
        request.session.flash(message, 'messages')

        msgstr = u'Member with id {0} \"{1}, {2}\" was deleted.'
        return HTTPFound(
            request.route_url(
                redirection_view,
                _query={'message': msgstr.format(
                    memberid,
                    member_lastname,
                    member_firstname)},
                _anchor='member_{id}'.format(id=str(memberid))
            )
        )
    else:
        return HTTPFound(
            request.route_url(
                redirection_view,
                _query={'message': (
                    'Deleting the member was not confirmed'
                    ' and therefore nothing has been deleted.')}
            )
        )
Esempio n. 5
0
def delete_afms(request):
    '''
    delete a bunch of AfMs in one go
    '''
    class DeleteAfMRange(colander.MappingSchema):
        first = colander.SchemaNode(
            colander.Integer(),
            title='first ID to delete'
        )
        last = colander.SchemaNode(
            colander.Integer(),
            title='last ID to delete'
        )
    schema = DeleteAfMRange()
    delete_range_form = deform.Form(
        schema,
        buttons=[deform.Button('delete_them', 'DELETE')]
    )
    if 'first' in request.POST:
        print "form was submitted!"
        print "first ID to delete: %s" % request.POST['first']
        controls = request.POST.items()
        try:
            appstruct = delete_range_form.validate(controls)
            #print('validated!')
            #print appstruct
            _first = appstruct['first']
            _last = appstruct['last']
            assert(_first < _last)
        except ValidationFailure, e:
            return {
                'resetform': e.render()
            }
        # delete entries here :-)
        for i in range(_first, _last+1):
            #print i
            try:
                #_del = C3sMember.delete_by_id(i)
                C3sMember.delete_by_id(i)
                #print 'deleted %s' % _del
            except:
                print 'id %s didnt exist'
        return HTTPFound(request.route_url('dashboard_only'))
Esempio n. 6
0
def delete_entry(request):
    """
    This view lets accountants delete datasets (e.g. doublettes, test entries).
    """

    deletion_confirmed = (request.params.get('deletion_confirmed', '0') == '1')
    redirection_view = request.params.get('redirect', 'dashboard')
    LOG.info('redirect to: ' + str(redirection_view))

    if deletion_confirmed:
        memberid = request.matchdict['memberid']
        member = C3sMember.get_by_id(memberid)
        member_lastname = member.lastname
        member_firstname = member.firstname

        C3sMember.delete_by_id(member.id)
        LOG.info(
            "member.id %s was deleted by %s",
            member.id,
            request.user.login,
        )
        message = "member.id %s was deleted" % member.id
        request.session.flash(message, 'messages')

        msgstr = u'Member with id {0} \"{1}, {2}\" was deleted.'
        return HTTPFound(
            request.route_url(redirection_view,
                              _query={
                                  'message':
                                  msgstr.format(memberid, member_lastname,
                                                member_firstname)
                              },
                              _anchor='member_{id}'.format(id=str(memberid))))
    else:
        return HTTPFound(
            request.route_url(redirection_view,
                              _query={
                                  'message':
                                  ('Deleting the member was not confirmed'
                                   ' and therefore nothing has been deleted.')
                              }))
Esempio n. 7
0
def delete_afms(request):
    '''
    Delete a bunch of AfMs in one go.

    I wrote this while implementing mass import to ease development 8-)
    '''
    class DeleteAfMRange(colander.MappingSchema):
        first = colander.SchemaNode(
            colander.Integer(),
            title='first ID to delete'
        )
        last = colander.SchemaNode(
            colander.Integer(),
            title='last ID to delete'
        )
    schema = DeleteAfMRange()
    delete_range_form = deform.Form(
        schema,
        buttons=[deform.Button('delete_them', 'DELETE')]
    )
    if 'first' in request.POST:
        # print "form was submitted!"
        # print "first ID to delete: %s" % request.POST['first']
        controls = request.POST.items()
        try:
            appstruct = delete_range_form.validate(controls)
            _first = appstruct['first']
            _last = appstruct['last']
            assert(_first < _last)  # XXX TODO: how about just one id? test!
        except ValidationFailure, e:
            return {
                'resetform': e.render()
            }
        for i in range(_first, _last+1):
            try:
                C3sMember.delete_by_id(i)
            except:
                print 'id %s didnt exist'
        return HTTPFound(request.route_url('dashboard'))