Exemple #1
0
def eliminarEquipo(request, equid):

    try:
        proyectoEquipo = models.ProjectTeam.objects.get(pk=equid)
        equipoP = models.Team.objects.get(pk=proyectoEquipo.team.team_id)
        proyectoP = models.Project.objects.get(
            pk=proyectoEquipo.project.proj_id)
        proyectoEquipo.delete()

        # ===Notificación===
        person_ids = getPersonsIdByProject(proyectoP.proj_id)
        change = {
            'team_name': equipoP.team_name,
            'proj_name': proyectoP.proj_name
        }
        notificaciones.notify(person_ids,
                              notificaciones.CAMBIO_EQUIPO_PROYECTO,
                              notificaciones.EQUIPO_ELIMINADO,
                              change,
                              project_name=proyectoP.proj_name)

        response = {'code': 200, 'status': 'success'}

    except ValidationError as e:

        response = {'code': 400, 'errors': list(e)[0], 'status': 'error'}

    return JsonResponse(response, safe=False, status=response['code'])
Exemple #2
0
def actualizarProyectoBasic(request, proyid):
    try:
        proyecto = models.Project.objects.get(pk=proyid)

        proyecto.proj_name = request.POST.get('proj_name')
        proyecto.proj_description = request.POST.get('proj_description')
        #proyecto.project_type = models.ProjectType.objects.get(projtype_id__exact = request.POST.get('tiproid'))
        proyecto.proj_start_date = request.POST.get('proj_start_date')
        proyecto.proj_close_date = request.POST.get('proj_close_date')

        proyecto.full_clean()
        proyecto.save()

        change = {
            'start_date': request.POST.get('proj_start_date'),
            'end_date': request.POST.get('proj_close_date'),
        }
        persons = getPersonsIdByProject(proyid)
        notificaciones.notify(persons,
                              notificaciones.CAMBIO_FECHA_PROYECTO,
                              None,
                              change,
                              project_name=proyecto.proj_name)

        return JsonResponse(serializers.serialize('python', [proyecto]),
                            safe=False)

    except ObjectDoesNotExist:
        return JsonResponse({'status': 'error'}, status=404)

    except ValidationError as e:
        return JsonResponse({'status': 'error', 'errors': dict(e)}, status=400)
def actualizarTareaGestionCambios(request, tareid):
    try:

        with transaction.atomic():

            estado = 0
            tarea = models.Task.objects.get(pk=tareid)

            restriction = models.TaskRestriction.objects.get(
                pk=request.POST.get('task_restriction_id'))
            restriction.task_start_date = request.POST.get('task_start_date')
            restriction.task_end_date = request.POST.get('task_end_date')
            restriction.start_time = request.POST.get('start_time')
            restriction.end_time = request.POST.get('end_time')
            restriction.save()

            tarea.task_quantity = request.POST.get('task_quantity')
            tarea.save()

            # Obtener los usuarios que hacen del proyecto
            pers_ids = getPersonsIdByProject(tarea.project.proj_id)
            change = {
                'start_date': request.POST.get('task_start_date'),
                'end_date': request.POST.get('task_end_date'),
                'start_time': request.POST.get('start_time'),
                'end_time': request.POST.get('end_time'),
                'task_quantity': request.POST.get('task_quantity')
            }
            notificaciones.notify(pers_ids,
                                  notificaciones.CAMBIO_FECHA_TAREA,
                                  None,
                                  change,
                                  project_name=tarea.project.proj_name,
                                  task_name=tarea.task_name)

            response = {
                'code': 200,
                'tarea': serializers.serialize('python', [tarea])[0],
                'status': 'success'
            }

    except ObjectDoesNotExist as e:
        response = {'code': 404, 'message': str(e), 'status': 'error' + str(e)}

    except ValidationError as e:

        try:
            errors = dict(e)
        except ValueError:
            errors = list(e)[0]

        response = {'code': 400, 'errors': errors, 'status': 'error'}

    except IntegrityError as e:
        response = {'code': 500, 'message': str(e), 'status': 'error'}

    return JsonResponse(response, safe=False, status=response['code'])
Exemple #4
0
def cambioTerritorio(request, dimensionid):

    try:

        with transaction.atomic():
            project_dimension = models.TerritorialDimension.objects.get(
                pk=dimensionid)

            data = json.loads(request.body)
            proj_id = data['proj_id']

            if 'geojson' in data:
                #dimensionTerritorialNew = models.DelimitacionGeografica(proyid=dimensionTerritorialOld.proyid, nombre=dimensionTerritorialOld.nombre, geojson=data['geojson'])
                #dimensionTerritorialNew.save()
                project_dimension.dimension_geojson = data['geojson']
                project_dimension.save()
                if 'tareas' in data:
                    for tarea in data['tareas']:
                        task_dimension = models.TerritorialDimension.objects.get(
                            pk=tarea['territorial_dimension_id'])
                        task_dimension.dimension_geojson = tarea[
                            'dimension_geojson']
                        task_dimension.save()

                    response = {'code': 200, 'status': 'success'}

                else:
                    raise ValidationError("JSON Inválido")

            else:
                raise ValidationError("JSON Inválido")

        # ===Notificación===
        project = models.Project.objects.get(pk=proj_id)
        change = {'proj_name': project.proj_name}
        personsid = getPersonsIdByProject(proj_id)
        notificaciones.notify(personsid,
                              notificaciones.CAMBIO_DIMENSION_TERRITORIAL,
                              None,
                              change,
                              project_name=project.proj_name)

    except ObjectDoesNotExist:
        response = {'code': 404, 'status': 'error'}

    except ValidationError as e:
        response = {'code': 400, 'message': str(e), 'status': 'error'}

    return JsonResponse(response, safe=False, status=response['code'])
Exemple #5
0
def agregarEquipo(request):

    try:
        equipoId = request.POST.get('equipoId')
        proyectoId = request.POST.get('proyectoId')

        equipoP = models.Team.objects.get(pk=equipoId)
        proyectoP = models.Project.objects.get(pk=proyectoId)

        proyectoEquipo = models.ProjectTeam(team=equipoP, project=proyectoP)
        proyectoEquipo.save()

        # ===Notificación===
        person_ids = getPersonsIdByProject(proyectoId)
        change = {
            'team_name': equipoP.team_name,
            'proj_name': proyectoP.proj_name
        }
        notificaciones.notify(person_ids,
                              notificaciones.CAMBIO_EQUIPO_PROYECTO,
                              notificaciones.EQUIPO_AGREGADO,
                              change,
                              project_name=proyectoP.proj_name)

        data = {
            'code': 201,
            'integrante': serializers.serialize('python', [proyectoEquipo])[0],
            'status': 'success'
        }

    except ValidationError as e:

        data = {'code': 400, 'errors': dict(e), 'status': 'error'}

    except IntegrityError as e:

        data = {'code': 500, 'errors': str(e), 'status': 'error'}

    return JsonResponse(data, safe=False, status=data['code'])