Exemplo n.º 1
0
def inserir_participante_guerra(request):
    try:
        if request.method == 'POST':
            form = ParticiparGuerraForm(request.POST)
            if form.is_valid():
                dados = form.cleaned_data
                participacao = ParticiparGuerra.objects.filter(guerra=dados.get('guerra'),
                                                               participante=dados.get('participante')).first()
                is_guerra_de_hoje = Guerras.objects.filter(data_inicio=date.today()).first() == dados.get('guerra')
                hora_fechamento_war = Configuracoes.objects.filter(nome_variavel='fechamento_war').first().valor_inteiro
                if is_guerra_de_hoje and hora_fechamento_war:
                    if not utils.passou_da_hora_para_participar_guerra(hora_fechamento_war):
                        if participacao:
                            participacao.delete()
                        ParticiparGuerra(**dados).save()
                        messages.success(request, 'Sua participação foi realizada com Sucesso.')
                    else:
                        messages.warning(request, 'Passou do horário de Registrar a Participação na Guerra.')
                else:
                    if participacao:
                        participacao.delete()
                    ParticiparGuerra(**dados).save()
                    messages.success(request, 'Sua participação foi realizada com Sucesso.')
                return redirect(utils.url_name_home)
            else:
                erros_form = TextosPadroes.errors_form(form)
                for error in erros_form:
                    messages.warning(request, error)
    except Exception as e:
        messages.warning(request, TextosPadroes.erro_padrao())
    return redirect(utils.url_name_home)
Exemplo n.º 2
0
def inserir(request):
    try:
        if request.method == 'POST':
            form = GruposForm(request.POST)
            if form.is_valid():
                dados = form.cleaned_data
                is_lider_grupo = Grupos.objects.filter(
                    lider=dados.get('lider')).count() > 0
                is_membro_grupo = VinculoGrupos.objects.filter(
                    membro=dados.get('lider')).count() > 0
                if not is_lider_grupo and not is_membro_grupo:
                    Grupos(**dados).save()
                    messages.success(request,
                                     TextosPadroes.salvar_sucesso_o('Grupo'))
                else:
                    messages.error(
                        request,
                        '{} já é Líder ou Membro em outro grupo fixo.'.format(
                            dados.get('lider')))
                    return redirect(utils.url_grupos_cadastrar)
            else:
                erros_form = utils.TextosPadroes.errors_form(form)
                for error in erros_form:
                    messages.warning(request, error)
                return redirect(utils.url_grupos_cadastrar)
    except Exception as e:
        messages.warning(request, TextosPadroes.erro_padrao())
        return redirect(utils.url_grupos_cadastrar)
    return redirect(utils.url_grupos_listar)
Exemplo n.º 3
0
def excluir(request, payout_id):
    from bdo_gestor_guilda.core.models.payout_personalizado import PayoutPersonalizado
    try:
        with transaction.atomic():
            payout = Payout.objects.get(pk=payout_id)
            payout_personalizado = PayoutPersonalizado.objects.filter(payout=payout)
            if payout_personalizado:
                payout_personalizado.delete()
            payout.delete()
            messages.success(request, TextosPadroes.apagar_sucesso_o('Payout'))
    except Exception as e:
        messages.error(request, TextosPadroes.erro_padrao())
        transaction.rollback()
    else:
        transaction.commit()
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
Exemplo n.º 4
0
def inserir(request):
    try:
        if request.method == 'POST':
            form = PayoutForm(request.POST)
            if form.is_valid():
                dados = form.cleaned_data
                Payout(**dados).save()
                messages.success(request, TextosPadroes.salvar_sucesso_o('Payout'))
                return redirect(utils.url_payout_listar)
            else:
                erros_form = TextosPadroes.errors_form(form)
                for error in erros_form:
                    messages.warning(request, error)
    except Exception as e:
        messages.warning(request, TextosPadroes.erro_padrao())
    return redirect(utils.url_payout_cadastrar)
Exemplo n.º 5
0
def marcar(request):
    import json
    from django.http import HttpResponse
    data = {'sucesso': True}
    try:
        if request.method == 'GET':
            lista_frequencia = []
            guerra_id = int(request.GET.get('guerra'))
            user_avancado_id = int(request.GET.get('user_avancado'))
            tem_frequencia = FrequenciaGuerra.objects.filter(guerra=guerra_id)
            if tem_frequencia:
                frequencia_guerra = tem_frequencia.first()
                ja_frequente = tem_frequencia.filter(
                    participantes__contains=[user_avancado_id]).count() > 0
                if ja_frequente:
                    lista_frequencia = frequencia_guerra.participantes
                    lista_frequencia.remove(user_avancado_id)
                    frequencia_guerra.participantes = lista_frequencia
                    frequencia_guerra.save()
                else:
                    lista_frequencia = frequencia_guerra.participantes
                    lista_frequencia.append(user_avancado_id)
                    frequencia_guerra.participantes = lista_frequencia
                    frequencia_guerra.save()
            else:
                lista_frequencia.append(user_avancado_id)
                guerra = Guerras.objects.filter(pk=guerra_id).first()
                dados = {'guerra': guerra, 'participantes': lista_frequencia}
                FrequenciaGuerra(**dados).save()
    except Exception as e:
        messages.warning(request, TextosPadroes.erro_padrao())
    dump = json.dumps(data)
    return HttpResponse(dump, content_type='application/json')
Exemplo n.º 6
0
def excluir(request, guerra_id):
    from bdo_gestor_guilda.core.models.participar_guerra import ParticiparGuerra
    from bdo_gestor_guilda.core.models.frequencia_guerra import FrequenciaGuerra
    try:
        with transaction.atomic():
            guerra = Guerras.objects.get(pk=guerra_id)
            participacoes_na_guerra = ParticiparGuerra.objects.filter(guerra=guerra)
            participacoes_na_guerra.delete()
            frequencias_na_guerra = FrequenciaGuerra.objects.filter(guerra=guerra)
            frequencias_na_guerra.delete()
            guerra.delete()
            messages.success(request, TextosPadroes.apagar_sucesso_a('Guerra'))
    except Exception as e:
        messages.error(request, TextosPadroes.erro_padrao())
        transaction.rollback()
    else:
        transaction.commit()
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
Exemplo n.º 7
0
def inserir(request):
    try:
        if request.method == 'POST':
            form = GuerrasForm(request.POST)
            if form.is_valid():
                dados = form.cleaned_data
                if erro_valida_data(request, dados):
                    return redirect(utils.url_guerras_cadastrar)
                Guerras(**dados).save()
                messages.success(request, TextosPadroes.salvar_sucesso_a('Guerra'))
                return redirect(utils.url_guerras_listar)
            else:
                erros_form = TextosPadroes.errors_form(form)
                for error in erros_form:
                    messages.warning(request, error)
    except Exception as e:
        messages.warning(request, TextosPadroes.erro_padrao())
    return redirect(utils.url_guerras_cadastrar)
Exemplo n.º 8
0
def inserir(request):
    try:
        if request.method == 'POST':
            form = AnunciosRestritosForm(request.POST)
            if form.is_valid():
                usuario = UserAvancado.objects.filter(usuario=request.user).first()
                dados = form.cleaned_data
                dados['usuario'] = usuario
                AnunciosRestritos(**dados).save()
                messages.success(request, TextosPadroes.salvar_sucesso_o('Anúncio'))
            else:
                erros_form = utils.TextosPadroes.errors_form(form)
                for error in erros_form:
                    messages.warning(request, error)
                return redirect(utils.url_anuncios_restritos_cadastrar)
    except Exception as e:
        messages.warning(request, TextosPadroes.erro_padrao())
        return redirect(utils.url_anuncios_restritos_cadastrar)
    return redirect(utils.url_name_home)
Exemplo n.º 9
0
def editar(request, guerra_id):
    try:
        guerra = Guerras.objects.get(pk=guerra_id)
        data = guerra.data_inicio
        guerra.data_inicio = '{}/{}/{}'.format(str(data.day).zfill(2), str(data.month).zfill(2), data.year)
        context = utils.get_context(request)
        context.update({'form': GuerrasForm(instance=guerra)})
        context.update({'guerra': guerra})
    except Exception as e:
        messages.error(request, TextosPadroes.erro_padrao())
        return HttpResponseRedirect(reverse(utils.url_guerras_listar))
    return render(request, '{0}/editar.html'.format(utils.path_guerras), context)
Exemplo n.º 10
0
def limpar_registros(request):
    from datetime import date, datetime
    from monthdelta import monthdelta
    try:
        with transaction.atomic():
            if request.method == 'POST':
                meses = int(request.POST.get('meses_limpar'))
                data_limpeza = date.today() - monthdelta(meses)
                guerras_limpeza = Guerras.objects.filter(
                    data_inicio__lte=data_limpeza)
                participacoes_limpeza = ParticiparGuerra.objects.filter(
                    guerra__in=guerras_limpeza)
                frequencias_limpeza = FrequenciaGuerra.objects.filter(
                    guerra__in=guerras_limpeza)
                payout_limpeza = Payout.objects.filter(
                    data_inicio__lte=data_limpeza)
                payout_personalizado_limpeza = PayoutPersonalizado.objects.filter(
                    payout__in=payout_limpeza)
                convert_datetime = datetime.combine(data_limpeza,
                                                    datetime.max.time())
                black_list_limpeza = UserAvancado.objects.filter(
                    ativo=False,
                    cargo=UserAvancado.CARGO_NENHUM_ID,
                    justificativa_inativo__isnull=False,
                    data_cadastro__lte=convert_datetime)

                contador = guerras_limpeza.count(
                ) + participacoes_limpeza.count() + frequencias_limpeza.count(
                )
                contador = contador + payout_limpeza.count(
                ) + payout_personalizado_limpeza.count()
                contador = contador + black_list_limpeza.count()

                participacoes_limpeza.delete()
                frequencias_limpeza.delete()
                guerras_limpeza.delete()
                payout_personalizado_limpeza.delete()
                payout_limpeza.delete()
                black_list_limpeza.delete()
                if contador == 0:
                    messages.warning(request,
                                     'Não havia registros a serem apagados.')
                else:
                    messages.success(
                        request,
                        '{} registros foram apagados.'.format(contador))
    except Exception as e:
        messages.warning(request, TextosPadroes.erro_padrao())
        transaction.rollback()
    else:
        transaction.commit()
    return redirect(utils.url_configuracoes_index)
Exemplo n.º 11
0
def set_usuario_owner(request, data):
    from django import forms

    try:
        if isinstance(data, forms.ModelForm) or isinstance(data, forms.Form):
            data = data.cleaned_data

        usuario_logado = request.user
        data['usuario'] = usuario_logado

    except ValueError:
        messages.warning(request, TextosPadroes.usuario_nao_logado())

    return data
Exemplo n.º 12
0
def tipo_classe_char_editar(request, tipo_classe_id):
    try:
        classe = TipoClasseChar.objects.get(pk=tipo_classe_id)
        context = utils.get_context(request)
        context.update({'form': TipoClasseCharForm(instance=classe)})
        context.update({'classe': classe})
    except Exception as e:
        messages.error(request, TextosPadroes.erro_padrao())
        return HttpResponseRedirect(
            reverse(utils.url_configuracoes_tipo_classe_char_listar))
    return render(
        request,
        '{0}/tipo_classe_char_editar.html'.format(utils.path_configuracoes),
        context)
Exemplo n.º 13
0
def editar(request, payout_id):
    try:
        payout = Payout.objects.get(pk=payout_id)
        data_inicio = payout.data_inicio
        data_fim = payout.data_fim
        payout.data_inicio = '{}/{}/{}'.format(str(data_inicio.day).zfill(2), str(data_inicio.month).zfill(2),
                                               data_inicio.year)
        payout.data_fim = '{}/{}/{}'.format(str(data_fim.day).zfill(2), str(data_fim.month).zfill(2), data_fim.year)
        context = utils.get_context(request)
        context.update({'form': PayoutForm(instance=payout)})
        context.update({'payout': payout})
    except Exception as e:
        messages.error(request, TextosPadroes.erro_padrao())
        return HttpResponseRedirect(reverse(utils.url_payout_listar))
    return render(request, '{0}/editar.html'.format(utils.path_payout), context)
Exemplo n.º 14
0
def termo_condicoes(request):
    context = utils.get_context(request)
    if context.get('dados_avancados').is_lider():
        termo = TermoCondicoes.objects.all().last()
        context.update({'termo': termo})
        if request.method == 'POST':
            try:
                termo.texto = request.POST.get('termo_condicoes')
                termo.save()
                messages.success(
                    request,
                    'O texto de Termo e Condições foi Atualizado com Sucesso!')
            except Exception as e:
                messages.warning(request, TextosPadroes.erro_padrao())
        return render(
            request,
            '{0}/termo_condicoes.html'.format(utils.path_configuracoes),
            context)
    return redirect(utils.url_configuracoes_index)
Exemplo n.º 15
0
def adicionar_tier(request):
    try:
        payout = Payout.objects.get(pk=int(request.POST.get('payout_id')))
        membro = UserAvancado.objects.get(pk=int(request.POST.get('membro_id')))
        tier_adicional = int(request.POST.get('tier_adicional'))
        tem_tier_adicional = PayoutPersonalizado.objects.filter(payout=payout, usuario=membro).first()
        if tier_adicional < 0:
            messages.error(request, 'Não é permitido colocar valor negativo.')
        else:
            if tem_tier_adicional:
                tem_tier_adicional.tier_adicional = tier_adicional
                tem_tier_adicional.save()
                messages.success(request, 'Tier Adicionado com Sucesso para {}!'.format(membro.nome_familia))
            else:
                dados = {'payout': payout, 'usuario': membro, 'tier_adicional': tier_adicional}
                PayoutPersonalizado(**dados).save()
                messages.success(request, 'Tier Adicionado com Sucesso para {}!'.format(membro.nome_familia))
    except Exception as e:
        messages.error(request, TextosPadroes.erro_padrao())
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))