コード例 #1
0
ファイル: logic.py プロジェクト: Yelp/PushmasterApp
def reject_request(request, rejector, reason=None):
    push = request.push

    request.push = None
    request.state = 'rejected'
    if reason:
        request.reject_reason = reason

    request.put()
    query.bust_request_caches()
    if push is not None:
        push.bust_requests_cache()

    util.send_im(
        to=request.owner.email(),
        message='<a href="mailto:%(rejector_email)s">%(rejector_name)s</a> rejected your request <a href="%(request_uri)s">%(request_subject)s</a>: %(reason)s',
        rejector_email=rejector.email(),
        rejector_name=user_info(rejector).full_name,
        request_subject=request.subject,
        request_uri=config.url(request.uri),
        reason=reason,
        )

    util.send_mail(
        to=[request.owner.email(), config.mail_to, config.mail_request],
        subject='Re: %s: %s' % (request.owner.nickname(), request.subject),
        body="""This request was rejected.\n\n%s\n\n%s""" % (reason, config.url(request.uri)),
        )

    return request
コード例 #2
0
ファイル: logic.py プロジェクト: Yelp/PushmasterApp
def set_request_properties(request, subject, message=None, push_plans=False, urgent=False, js_serials=False, target_date=None, branch=None, img_serials=False, tests_pass=False, tests_pass_url='', time_to_verify=''):
    assert len(subject) > 0
    target_date = target_date or datetime.date.today()

    request.state = request.default_state
    request.reject_reason = None
    request.push = None
    request.subject = subject
    request.branch = branch and branch.strip()
    request.push_plans = push_plans
    request.js_serials = js_serials
    request.img_serials = img_serials
    request.tests_pass = tests_pass
    request.tests_pass_url = tests_pass_url
    request.urgent = urgent
    request.target_date = target_date
    request.time_to_verify = time_to_verify
    if message:
        assert len(message) > 0
        request.message = message

    request.put()
    query.bust_request_caches()

    send_request_mail(request)

    return request
コード例 #3
0
ファイル: logic.py プロジェクト: Yelp/PushmasterApp
def abandon_request(request):
    assert request.state in ('requested', 'accepted', 'rejected')
    request.state = 'abandoned'
    push = request.push
    request.push = None

    request.put()
    query.bust_request_caches()
    if push is not None:
        push.bust_requests_cache()

    return request
コード例 #4
0
ファイル: logic.py プロジェクト: alanf/PushmasterApp
def accept_request(push, request):
    assert push.state in ('accepting', 'onstage')
    assert request.state == 'requested'
    assert not request.push

    request.push = push
    request.state = 'accepted'

    request.put()
    query.bust_request_caches()
    push.bust_requests_cache()

    return request
コード例 #5
0
ファイル: logic.py プロジェクト: Yelp/PushmasterApp
def take_ownership(object):
    object.owner = users.get_current_user()

    object.put()

    if isinstance(object, model.Request):
        query.bust_request_caches()
        push = object.push
        if push is not None:
            object.push.bust_requests_cache()
    elif isinstance(object, model.Push):
        query.bust_push_caches()

    return object
コード例 #6
0
ファイル: logic.py プロジェクト: alanf/PushmasterApp
def abandon_push(push):
    assert push.state in ('accepting', 'onstage')

    push.state = 'abandoned'
    for request in query.push_requests(push):
        request.state = 'requested'
        request.push = None
        request.put()

    push.put()
    query.bust_request_caches()
    push.bust_requests_cache()

    return push
コード例 #7
0
ファイル: logic.py プロジェクト: Yelp/PushmasterApp
def withdraw_request(request):
    assert request.state in ('accepted', 'checkedin', 'onstage', 'tested')
    push = request.push
    assert push
    assert request.push.state in ('accepting', 'onstage')

    push_owner_email = request.push.owner.email()
    request.push = None
    request.state = 'requested'

    request.put()
    query.bust_request_caches()
    push.bust_requests_cache()

    util.send_mail(
        to=[push_owner_email, config.mail_to, config.mail_request],
        subject='Re: %s: %s' % (request.owner.nickname(), request.subject),
        body='I withdrew my request.\n' + config.url(request.uri))

    return request
コード例 #8
0
ファイル: logic.py プロジェクト: Yelp/PushmasterApp
def accept_request(push, request):
    assert push.state in ('accepting', 'onstage')
    assert request.state == 'requested'
    assert not request.push

    request.push = push
    request.state = 'accepted'

    request.put()
    query.bust_request_caches()
    push.bust_requests_cache()

    util.send_im(
        to=request.owner.email(),
        message='<a href="mailto:%(pushmaster_email)s">%(pushmaster_name)s</a> accepted <a href="%(request_uri)s">%(request_subject)s</a> into <a href="%(push_uri)s">%(push_name)s</a>.',
        pushmaster_email=push.owner.email(),
        pushmaster_name=user_info(push.owner).full_name,
        request_uri=config.url(request.uri),
        request_subject=request.subject,
        push_uri=config.url(push.uri),
        push_name=push.name or 'the push',
        )

    return request