Esempio n. 1
0
def make_post_action(request):
    """Perform the action of saving the post. """

    post = Post()
    post.capacity = request.POST['capacity']
    post.traffic = request.POST['traffic']
    post.comment = request.POST['description']
    post.latitude = request.POST['codigo_latitude']
    post.longitude = request.POST['codigo_longitude']
    post.user_id = request.user.id
    try:
        post.terminal_id = request.POST["terminal"]
    except:
        return call_feed_page(request,
                              alert_title='Erro :(',
                              error_lead='Campo não preenchido.',
                              modal_message='O campo de terminal deve ser \
                              preenchido para realizar uma businada.')
    pontuation = 0

    if request.POST['review'] == '':
        pontuation = 0
    else:
        pontuation = int(request.POST['review'])
    try:
        busline = Busline.get_by_line_equals(request.POST['line_number'])
        post.busline_id = busline.id
        try:
            last_post = Post.last(post.busline_id)
            last_post.user.pontuation = last_post.user.pontuation + \
                pontuation
            last_post.user.save()
        except LineWithoutPostError:
            pass
        if post.latitude == "" or post.longitude == "":
            return call_feed_page(request,
                                  alert_title='Erro :(',
                                  error_lead='Serviço não disponível',
                                  modal_message='Não conseguimos obter sua\
                                       geolocalização.')
        post.save()
        response = call_feed_page(request,
                                  alert_title='Sucesso',
                                  error_lead='Post realizado',
                                  modal_message='Post realizado com sucesso!')
    except ApiException:
        response = call_feed_page(request,
                                  alert_title='Erro :(',
                                  error_lead='Servidor não disponível',
                                  modal_message='O acesso ao servidor está \
                                  indisponível no momento, verifique sua \
                                  conexão.')

    if post.latitude == "" or post.longitude == "":
        return call_feed_page(request,
                              alert_title='Erro :(',
                              error_lead='Servidor não disponível',
                              modal_message='Não conseguimos obter sua \
                              geolocalização')
    post.save()
    return response