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)
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)
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'))
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)
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')
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'))
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)
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)
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)
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)
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
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)
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)
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)
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'))