def form_valid(self, form): tarea = Tarea.objects.get(pk=self.kwargs['pk_task']) form.instance.tarea = tarea form_data = form.save() register_activity_profile_user( self.request.user, 'Archivo subido de la tarea ' + tarea.nombre_tarea + ' de la actividad ' + tarea.actividad.nombre_actividad + ' en el proyecto ' + tarea.actividad.proyecto.nombre_proyecto) register_activity_project( self.request.user, tarea.actividad.proyecto, 'Archivo subido de la tarea ' + tarea.nombre_tarea + ' de la actividad ' + tarea.actividad.nombre_actividad + ' en el proyecto ' + tarea.actividad.proyecto.nombre_proyecto) for users in tarea.actividad.actividad_role_set.all(): register_notification( users.role.user, 'fa-file', 'Hay un nuevo archivo subido en la tarea <a href="/project/' + str(tarea.actividad.proyecto.pk) + '/' + tarea.actividad.proyecto.tag_url + '/activities/' + str(tarea.actividad.pk) + '/task/' + str(tarea.pk) + '/detail-task/">' + tarea.nombre_tarea + '</a> de la actividad <a href="/project/' + str(tarea.actividad.proyecto.pk) + '/' + tarea.actividad.proyecto.tag_url + '/activities/' + str(tarea.actividad.pk) + '/detail-activity/">' + tarea.actividad.nombre_actividad + '</a> del proyecto <a href="/project/' + str(tarea.actividad.proyecto.pk) + '/' + tarea.actividad.proyecto.tag_url + '/">' + tarea.actividad.proyecto.nombre_proyecto + '</a>') return super(UploadFileView, self).form_valid(form)
def delete_user_activity(request, pk, tag_url, pk_activity, pk_role): response = {} actividad_role = Actividad_role.objects.get(pk=pk_role) register_activity_profile_user( request.user, 'Usuario ' + actividad_role.role.user.email + ' eliminado de la actividad ' + actividad_role.actividad.nombre_actividad + ' del proyecto ' + actividad_role.actividad.proyecto.nombre_proyecto) register_activity_project( request.user, actividad_role.actividad.proyecto, 'Usuario ' + actividad_role.role.user.email + ' eliminado de la actividad ' + actividad_role.actividad.nombre_actividad + ' del proyecto ' + actividad_role.actividad.proyecto.nombre_proyecto) register_notification( actividad_role.role.user, 'fa-briefcase', 'Has sido eliminado de la actividad <a href="/project/' + str(actividad_role.actividad.proyecto.pk) + '/' + actividad_role.actividad.proyecto.tag_url + '/activities/' + str(actividad_role.actividad.pk) + '/detail-activity/">' + actividad_role.actividad.nombre_actividad + '</a> en el proyecto <a href="/project/' + str(actividad_role.actividad.proyecto.pk) + '/' + actividad_role.actividad.proyecto.tag_url + '/">' + actividad_role.actividad.proyecto.nombre_proyecto + '</a>') actividad_role.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar el usuario de la actividad' return HttpResponse(json.dumps(response), "application/json")
def delete_task(request, pk, tag_url, pk_activity, pk_task): response = {} tarea = Tarea.objects.get(pk=pk_task) register_activity_profile_user( request.user, 'Tarea ' + tarea.nombre_tarea + ' eliminada de la actividad ' + tarea.actividad.nombre_actividad + ' del proyecto ' + tarea.actividad.proyecto.nombre_proyecto) register_activity_project( request.user, tarea.actividad.proyecto, 'Tarea ' + tarea.nombre_tarea + ' eliminada de la actividad ' + tarea.actividad.nombre_actividad + ' del proyecto ' + tarea.actividad.proyecto.nombre_proyecto) for users in tarea.actividad.actividad_role_set.all(): register_notification( users.role.user, 'fa-tasks', 'La tarea <a href="/project/' + str(tarea.actividad.proyecto.pk) + '/' + tarea.actividad.proyecto.tag_url + '/activities/' + str(tarea.actividad.pk) + '/task/' + str(tarea.pk) + '/detail-task/">' + tarea.nombre_tarea + '</a> ha sido eliminada dentro de la actividad <a href="/project/' + str(tarea.actividad.proyecto.pk) + '/' + tarea.actividad.proyecto.tag_url + '/activities/' + str(tarea.actividad.pk) + '/detail-activity/">' + tarea.actividad.nombre_actividad + '</a> del proyecto <a href="/project/' + str(tarea.actividad.proyecto.pk) + '/' + tarea.actividad.proyecto.tag_url + '/">' + tarea.actividad.proyecto.nombre_proyecto + '</a>') tarea.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar la tarea' return HttpResponse(json.dumps(response), "application/json")
def delete_comment(request, pk, tag_url, pk_activity, pk_task, pk_comment): response = {} comment = Comentario_tarea.objects.get(pk=pk_comment) register_activity_profile_user( request.user, 'Comentario eliminado de la tarea ' + comment.tarea.nombre_tarea + ' de la actividad ' + comment.tarea.actividad.nombre_actividad + ' del proyecto ' + comment.tarea.actividad.proyecto.nombre_proyecto) register_activity_project( request.user, comment.tarea.actividad.proyecto, 'Comentario eliminado de la tarea ' + comment.tarea.nombre_tarea + ' de la actividad ' + comment.tarea.actividad.nombre_actividad + ' del proyecto ' + comment.tarea.actividad.proyecto.nombre_proyecto) register_notification( comment.usuario, 'fa-comments', 'Tu comentario ha sido eliminado en la tarea <a href="/project/' + str(comment.tarea.actividad.proyecto.pk) + '/' + comment.tarea.actividad.proyecto.tag_url + '/activities/' + str(comment.tarea.actividad.pk) + '/task/' + str(comment.tarea.pk) + '/detail-task/">' + comment.tarea.nombre_tarea + '</a> de la actividad <a href="/project/' + str(comment.tarea.actividad.proyecto.pk) + '/' + comment.tarea.actividad.proyecto.tag_url + '/activities/' + str(comment.tarea.actividad.pk) + '/detail-activity/">' + comment.tarea.actividad.nombre_actividad + '</a> del proyecto <a href="/project/' + str(comment.tarea.actividad.proyecto.pk) + '/' + comment.tarea.actividad.proyecto.tag_url + '/">' + comment.tarea.actividad.proyecto.nombre_proyecto + '</a>') comment.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar el comentario' return HttpResponse(json.dumps(response), "application/json")
def form_valid(self, form): form.instance.actividad = Actividad.objects.get( pk=self.kwargs['pk_activity']) form_data = form.save() register_activity_profile_user( self.request.user, 'Usuario ' + form_data.role.user.email + ' agregado a la actividad ' + form_data.actividad.nombre_actividad + ' del proyecto ' + form_data.actividad.proyecto.nombre_proyecto) register_activity_project( self.request.user, form_data.actividad.proyecto, 'Usuario ' + form_data.role.user.email + ' agregado a la actividad ' + form_data.actividad.nombre_actividad + ' del proyecto ' + form_data.actividad.proyecto.nombre_proyecto) register_notification( form_data.role.user, 'fa-briefcase', 'Te han agregado a la actividad <a href="/project/' + str(form_data.actividad.proyecto.pk) + '/' + form_data.actividad.proyecto.tag_url + '/activities/' + str(form_data.actividad.pk) + '/detail-activity/">' + form_data.actividad.nombre_actividad + '</a> del proyecto <a href="/project/' + str(form_data.actividad.proyecto.pk) + '/' + form_data.actividad.proyecto.tag_url + '/">' + form_data.actividad.proyecto.nombre_proyecto + '</a>') return super(UserRoleActivitieView, self).form_valid(form)
def form_valid(self, form): actividad = Actividad.objects.get(pk=self.kwargs['pk_activity']) form.instance.actividad = actividad form.instance.estado = Tipo_estado.objects.get(nombre_estado='Proceso') form.instance.usuario = self.request.user form_data = form.save() register_activity_profile_user( self.request.user, 'Tarea ' + form_data.nombre_tarea + ' creada en la actividad ' + actividad.nombre_actividad + ' del proyecto ' + actividad.proyecto.nombre_proyecto) register_activity_project( self.request.user, actividad.proyecto, 'Tarea ' + form_data.nombre_tarea + ' creada en la actividad ' + actividad.nombre_actividad + ' del proyecto ' + actividad.proyecto.nombre_proyecto) for users in actividad.actividad_role_set.all(): register_notification( users.role.user, 'fa-tasks', 'La tarea <a href="/project/' + str(actividad.proyecto.pk) + '/' + actividad.proyecto.tag_url + '/activities/' + str(actividad.pk) + '/task/' + str(form_data.pk) + '/detail-task/">' + form_data.nombre_tarea + '</a> ha sido creada dentro de la actividad <a href="/project/' + str(actividad.proyecto.pk) + '/' + actividad.proyecto.tag_url + '/activities/' + str(actividad.pk) + '/detail-activity/">' + actividad.nombre_actividad + '</a> del proyecto <a href="/project/' + str(actividad.proyecto.pk) + '/' + actividad.proyecto.tag_url + '/">' + actividad.proyecto.nombre_proyecto + '</a>') return super(NewTaskActivityView, self).form_valid(form)
def form_valid(self, form): estado = Tipo_estado.objects.all() proyecto = Proyecto.objects.get(pk=self.kwargs['pk']) form.instance.proyecto = proyecto form.instance.estado = estado.get( nombre_estado='Activo' ) if form.cleaned_data['fecha_entrega'] >= datetime.datetime.now( ).date() else estado.get(nombre_estado='Terminado') form_data = form.save() register_activity_profile_user( self.request.user, 'Actividad ' + form_data.nombre_actividad + ' actualizada en el proyecto ' + proyecto.nombre_proyecto) register_activity_project( self.request.user, proyecto, 'Actividad ' + form_data.nombre_actividad + ' actualizada en el proyecto ' + proyecto.nombre_proyecto) for users in proyecto.roles_project_set.all(): register_notification( users.user, 'fa-briefcase', 'La actividad <a href="/project/' + str(proyecto.pk) + '/' + proyecto.tag_url + '/activities/' + str(form_data.pk) + '/detail-activity/">' + form_data.nombre_actividad + '</a> ha sido actualizada en el proyecto <a href="/project/' + str(proyecto.pk) + '/' + proyecto.tag_url + '/">' + proyecto.nombre_proyecto + '</a>') return super(UpdateActivitieView, self).form_valid(form)
def form_valid(self, form): estado = Tipo_estado.objects.all() actividad = Actividad.objects.get(pk=self.kwargs['pk_activity']) form.instance.actividad = actividad form.instance.estado = estado.get( nombre_estado='Proceso' ) if form.cleaned_data['fecha_entrega'] >= datetime.datetime.now( ).date() else estado.get(nombre_estado='Terminado') form_data = form.save() register_activity_profile_user( self.request.user, 'Tarea ' + form_data.nombre_tarea + ' actualizada en la actividad ' + actividad.nombre_actividad + ' del proyecto ' + actividad.proyecto.nombre_proyecto) register_activity_project( self.request.user, actividad.proyecto, 'Tarea ' + form_data.nombre_tarea + ' actualizada en la actividad ' + actividad.nombre_actividad + ' del proyecto ' + actividad.proyecto.nombre_proyecto) for users in actividad.actividad_role_set.all(): register_notification( users.role.user, 'fa-tasks', 'La tarea <a href="/project/' + str(actividad.proyecto.pk) + '/' + actividad.proyecto.tag_url + '/activities/' + str(actividad.pk) + '/task/' + str(form_data.pk) + '/detail-task/">' + form_data.nombre_tarea + '</a> ha sido editada dentro de la actividad <a href="/project/' + str(actividad.proyecto.pk) + '/' + actividad.proyecto.tag_url + '/activities/' + str(actividad.pk) + '/detail-activity/">' + actividad.nombre_actividad + '</a> del proyecto <a href="/project/' + str(actividad.proyecto.pk) + '/' + actividad.proyecto.tag_url + '/">' + actividad.proyecto.nombre_proyecto + '</a>') return super(UpdateTaskActivityView, self).form_valid(form)
def form_valid(self, form): form.instance.actividad = Actividad.objects.get(pk = self.kwargs['pk_activity']) form_data = form.save() register_activity_profile_user(self.request.user, 'Usuario '+form_data.role.user.email+' agregado a la actividad '+form_data.actividad.nombre_actividad+' del proyecto '+form_data.actividad.proyecto.nombre_proyecto) register_activity_project(self.request.user, form_data.actividad.proyecto, 'Usuario '+form_data.role.user.email+' agregado a la actividad '+form_data.actividad.nombre_actividad+' del proyecto '+form_data.actividad.proyecto.nombre_proyecto) register_notification(form_data.role.user, 'fa-briefcase', 'Te han agregado a la actividad <a href="/project/'+str(form_data.actividad.proyecto.pk)+'/'+form_data.actividad.proyecto.tag_url+'/activities/'+str(form_data.actividad.pk)+'/detail-activity/">'+form_data.actividad.nombre_actividad+'</a> del proyecto <a href="/project/'+str(form_data.actividad.proyecto.pk)+'/'+form_data.actividad.proyecto.tag_url+'/">'+form_data.actividad.proyecto.nombre_proyecto+'</a>') return super(UserRoleActivitieView, self).form_valid(form)
def post(self, request, *args, **kwargs): form = self.form_class(request.POST) if form.is_valid(): user_email = form.cleaned_data["user_email"] try: user = User.objects.get(email=user_email) app_send_email(user, request.META['HTTP_HOST'], 'Cambio de Contraseña', 'email/password_reset_subject.html', '') register_activity_profile_user( user, 'Solicitud cambio de contraseña') register_notification(request.META['HTTP_HOST'], user, 'fa fa-unlock', 'Solicitud Cambio de contraseña') result = self.form_valid(form) messages.success( request, 'Un correo ha sido enviado ha ' + user_email + ". Por favor verifica tu correo y sigue las instrucciones." ) except User.DoesNotExist: result = self.form_invalid(form) messages.warning( request, 'No hay una cuenta asociada con el correo electronico digitado.' ) return result
def form_valid(self, form): form.instance.user = self.request.user data_object = form.save() register_activity_profile_user(self.request.user, 'Proyecto '+data_object.nombre_proyecto+' editado.') register_activity_project(self.request.user, data_object, 'Proyecto '+data_object.nombre_proyecto+' editado. Code: '+str(data_object.pk)) for users in data_object.roles_project_set.all(): register_notification(users.user, 'fa-folder', 'El proyecto <a href="/project/'+str(data_object.pk)+'/'+data_object.tag_url+'/">'+data_object.nombre_proyecto+'</a> ha sido editado por '+self.request.user.email) return super(UpdateProjectView, self).form_valid(form)
def verify_state_project(): terminate = Tipo_estado.objects.get(nombre_estado = 'Terminado') for proyecto in Proyecto.objects.all(): if proyecto.fecha_final < datetime.datetime.now().date(): proyecto.estado = terminate proyecto.save() for users in proyecto.roles_project_set.all(): register_notification(users.user, 'fa-folder', 'El proyecto '+proyecto.nombre_proyecto+' ha sido finalizado automaticamente')
def form_valid(self, form): tarea = Tarea.objects.get(pk = self.kwargs['pk_task']) form.instance.tarea = tarea form_data = form.save() register_activity_profile_user(self.request.user, 'Archivo subido de la tarea '+tarea.nombre_tarea+' de la actividad '+tarea.actividad.nombre_actividad+' en el proyecto '+tarea.actividad.proyecto.nombre_proyecto) register_activity_project(self.request.user, tarea.actividad.proyecto, 'Archivo subido de la tarea '+tarea.nombre_tarea+' de la actividad '+tarea.actividad.nombre_actividad+' en el proyecto '+tarea.actividad.proyecto.nombre_proyecto) for users in tarea.actividad.actividad_role_set.all(): register_notification(users.role.user, 'fa-file', 'Hay un nuevo archivo subido en la tarea <a href="/project/'+str(tarea.actividad.proyecto.pk)+'/'+tarea.actividad.proyecto.tag_url+'/activities/'+str(tarea.actividad.pk)+'/task/'+str(tarea.pk)+'/detail-task/">'+tarea.nombre_tarea+'</a> de la actividad <a href="/project/'+str(tarea.actividad.proyecto.pk)+'/'+tarea.actividad.proyecto.tag_url+'/activities/'+str(tarea.actividad.pk)+'/detail-activity/">'+tarea.actividad.nombre_actividad+'</a> del proyecto <a href="/project/'+str(tarea.actividad.proyecto.pk)+'/'+tarea.actividad.proyecto.tag_url+'/">'+tarea.actividad.proyecto.nombre_proyecto+'</a>') return super(UploadFileView, self).form_valid(form)
def delete_project(request, pk, tag_url): response = {} proyecto = Proyecto.objects.get(pk = pk) register_activity_profile_user(request.user, 'Proyecto '+proyecto.nombre_proyecto+' eliminado') for users in proyecto.roles_project_set.all(): register_notification(users.user, 'fa-folder', 'El proyecto '+proyecto.nombre_proyecto+' ha sido eliminado por '+request.user.email) proyecto.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar el proyecto' return HttpResponse(json.dumps(response), "application/json")
def form_valid(self, form): proyecto = Proyecto.objects.get(pk = self.kwargs['pk']) form.instance.proyecto = proyecto form.instance.estado = Tipo_estado.objects.get(nombre_estado = 'Activo') form_data = form.save() register_activity_profile_user(self.request.user, 'Actividad '+form_data.nombre_actividad+' creada en el proyecto '+proyecto.nombre_proyecto) register_activity_project(self.request.user, proyecto, 'Actividad '+form_data.nombre_actividad+' creada en el proyecto '+proyecto.nombre_proyecto) for users in proyecto.roles_project_set.all(): register_notification(users.user, 'fa-briefcase', 'La actividad <a href="/project/'+str(proyecto.pk)+'/'+proyecto.tag_url+'/activities/'+str(form_data.pk)+'/detail-activity/">'+form_data.nombre_actividad+'</a> ha sido creada en el proyecto <a href="/project/'+str(proyecto.pk)+'/'+proyecto.tag_url+'/">'+proyecto.nombre_proyecto+'</a>') return super(NewActivitieView, self).form_valid(form)
def delete_user_activity(request, pk, tag_url, pk_activity, pk_role): response = {} actividad_role = Actividad_role.objects.get(pk = pk_role) register_activity_profile_user(request.user, 'Usuario '+actividad_role.role.user.email+' eliminado de la actividad '+actividad_role.actividad.nombre_actividad+' del proyecto '+actividad_role.actividad.proyecto.nombre_proyecto) register_activity_project(request.user, actividad_role.actividad.proyecto, 'Usuario '+actividad_role.role.user.email+' eliminado de la actividad '+actividad_role.actividad.nombre_actividad+' del proyecto '+actividad_role.actividad.proyecto.nombre_proyecto) register_notification(actividad_role.role.user, 'fa-briefcase', 'Has sido eliminado de la actividad <a href="/project/'+str(actividad_role.actividad.proyecto.pk)+'/'+actividad_role.actividad.proyecto.tag_url+'/activities/'+str(actividad_role.actividad.pk)+'/detail-activity/">'+actividad_role.actividad.nombre_actividad+'</a> en el proyecto <a href="/project/'+str(actividad_role.actividad.proyecto.pk)+'/'+actividad_role.actividad.proyecto.tag_url+'/">'+actividad_role.actividad.proyecto.nombre_proyecto+'</a>') actividad_role.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar el usuario de la actividad' return HttpResponse(json.dumps(response), "application/json")
def form_valid(self, form): form.instance.user = self.request.user data_object = form.save() role = Tipo_role.objects.get(nombre_role = "Administrador") project_role = Roles_project(user = self.request.user, proyecto = data_object, role = role) project_role.save() register_activity_profile_user(self.request.user, 'Proyecto '+data_object.nombre_proyecto+' creado') register_activity_project(self.request.user, data_object, 'Proyecto '+data_object.nombre_proyecto+' creado') register_notification(self.request.user, 'fa-folder', 'El proyecto <a href="/project/'+str(data_object.pk)+'/'+data_object.tag_url+'/">'+data_object.nombre_proyecto+'</a> ha sido creado con exito.') return super(NewProjectView, self).form_valid(form)
def delete_comment(request, pk, tag_url, pk_activity, pk_task, pk_comment): response = {} comment = Comentario_tarea.objects.get(pk = pk_comment) register_activity_profile_user(request.user, 'Comentario eliminado de la tarea '+comment.tarea.nombre_tarea+' de la actividad '+comment.tarea.actividad.nombre_actividad+' del proyecto '+comment.tarea.actividad.proyecto.nombre_proyecto) register_activity_project(request.user, comment.tarea.actividad.proyecto, 'Comentario eliminado de la tarea '+comment.tarea.nombre_tarea+' de la actividad '+comment.tarea.actividad.nombre_actividad+' del proyecto '+comment.tarea.actividad.proyecto.nombre_proyecto) register_notification(comment.usuario, 'fa-comments', 'Tu comentario ha sido eliminado en la tarea <a href="/project/'+str(comment.tarea.actividad.proyecto.pk)+'/'+comment.tarea.actividad.proyecto.tag_url+'/activities/'+str(comment.tarea.actividad.pk)+'/task/'+str(comment.tarea.pk)+'/detail-task/">'+comment.tarea.nombre_tarea+'</a> de la actividad <a href="/project/'+str(comment.tarea.actividad.proyecto.pk)+'/'+comment.tarea.actividad.proyecto.tag_url+'/activities/'+str(comment.tarea.actividad.pk)+'/detail-activity/">'+comment.tarea.actividad.nombre_actividad+'</a> del proyecto <a href="/project/'+str(comment.tarea.actividad.proyecto.pk)+'/'+comment.tarea.actividad.proyecto.tag_url+'/">'+comment.tarea.actividad.proyecto.nombre_proyecto+'</a>') comment.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar el comentario' return HttpResponse(json.dumps(response), "application/json")
def delete_activities(request, pk, tag_url, pk_activity): response = {} actividad = Actividad.objects.get(pk = pk_activity) register_activity_profile_user(request.user, 'Actividad '+actividad.nombre_actividad+' eliminada del proyecto '+actividad.proyecto.nombre_proyecto) register_activity_project(request.user, actividad.proyecto, 'Actividad '+actividad.nombre_actividad+' eliminada del proyecto '+actividad.proyecto.nombre_proyecto) for users in actividad.proyecto.roles_project_set.all(): register_notification(users.user, 'fa-briefcase', 'La actividad '+actividad.nombre_actividad+' ha sido elimidada del proyecto <a href="/project/'+str(actividad.proyecto.pk)+'/'+actividad.proyecto.tag_url+'/">'+actividad.proyecto.nombre_proyecto+'</a>') actividad.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar la actividad' return HttpResponse(json.dumps(response), "application/json")
def form_valid(self, form): estado = Tipo_estado.objects.all() proyecto = Proyecto.objects.get(pk = self.kwargs['pk']) form.instance.proyecto = proyecto form.instance.estado = estado.get(nombre_estado = 'Activo') if form.cleaned_data['fecha_entrega'] >= datetime.datetime.now().date() else estado.get(nombre_estado = 'Terminado') form_data = form.save() register_activity_profile_user(self.request.user, 'Actividad '+form_data.nombre_actividad+' actualizada en el proyecto '+proyecto.nombre_proyecto) register_activity_project(self.request.user, proyecto, 'Actividad '+form_data.nombre_actividad+' actualizada en el proyecto '+proyecto.nombre_proyecto) for users in proyecto.roles_project_set.all(): register_notification(users.user, 'fa-briefcase', 'La actividad <a href="/project/'+str(proyecto.pk)+'/'+proyecto.tag_url+'/activities/'+str(form_data.pk)+'/detail-activity/">'+form_data.nombre_actividad+'</a> ha sido actualizada en el proyecto <a href="/project/'+str(proyecto.pk)+'/'+proyecto.tag_url+'/">'+proyecto.nombre_proyecto+'</a>') return super(UpdateActivitieView, self).form_valid(form)
def form_valid(self, form): estado = Tipo_estado.objects.all() actividad = Actividad.objects.get(pk = self.kwargs['pk_activity']) form.instance.actividad = actividad form.instance.estado = estado.get(nombre_estado = 'Proceso') if form.cleaned_data['fecha_entrega'] >= datetime.datetime.now().date() else estado.get(nombre_estado = 'Terminado') form_data = form.save() register_activity_profile_user(self.request.user, 'Tarea '+form_data.nombre_tarea+' actualizada en la actividad '+actividad.nombre_actividad+' del proyecto '+actividad.proyecto.nombre_proyecto) register_activity_project(self.request.user, actividad.proyecto, 'Tarea '+form_data.nombre_tarea+' actualizada en la actividad '+actividad.nombre_actividad+' del proyecto '+actividad.proyecto.nombre_proyecto) for users in actividad.actividad_role_set.all(): register_notification(users.role.user, 'fa-tasks', 'La tarea <a href="/project/'+str(actividad.proyecto.pk)+'/'+actividad.proyecto.tag_url+'/activities/'+str(actividad.pk)+'/task/'+str(form_data.pk)+'/detail-task/">'+form_data.nombre_tarea+'</a> ha sido editada dentro de la actividad <a href="/project/'+str(actividad.proyecto.pk)+'/'+actividad.proyecto.tag_url+'/activities/'+str(actividad.pk)+'/detail-activity/">'+actividad.nombre_actividad+'</a> del proyecto <a href="/project/'+str(actividad.proyecto.pk)+'/'+actividad.proyecto.tag_url+'/">'+actividad.proyecto.nombre_proyecto+'</a>') return super(UpdateTaskActivityView, self).form_valid(form)
def form_valid(self, form): actividad = Actividad.objects.get(pk = self.kwargs['pk_activity']) form.instance.actividad = actividad form.instance.estado = Tipo_estado.objects.get(nombre_estado = 'Proceso') form.instance.usuario = self.request.user form_data = form.save() register_activity_profile_user(self.request.user, 'Tarea '+form_data.nombre_tarea+' creada en la actividad '+actividad.nombre_actividad+' del proyecto '+actividad.proyecto.nombre_proyecto) register_activity_project(self.request.user, actividad.proyecto, 'Tarea '+form_data.nombre_tarea+' creada en la actividad '+actividad.nombre_actividad+' del proyecto '+actividad.proyecto.nombre_proyecto) for users in actividad.actividad_role_set.all(): register_notification(users.role.user, 'fa-tasks', 'La tarea <a href="/project/'+str(actividad.proyecto.pk)+'/'+actividad.proyecto.tag_url+'/activities/'+str(actividad.pk)+'/task/'+str(form_data.pk)+'/detail-task/">'+form_data.nombre_tarea+'</a> ha sido creada dentro de la actividad <a href="/project/'+str(actividad.proyecto.pk)+'/'+actividad.proyecto.tag_url+'/activities/'+str(actividad.pk)+'/detail-activity/">'+actividad.nombre_actividad+'</a> del proyecto <a href="/project/'+str(actividad.proyecto.pk)+'/'+actividad.proyecto.tag_url+'/">'+actividad.proyecto.nombre_proyecto+'</a>') return super(NewTaskActivityView, self).form_valid(form)
def delete_document(request, pk, tag_url, pk_activity, pk_task, pk_document): response = {} documento = Documento.objects.get(pk = pk_document) register_activity_profile_user(request.user, 'Archivo eliminado de la tarea '+documento.tarea.nombre_tarea+' de la actividad '+documento.tarea.actividad.nombre_actividad+' en el proyecto '+documento.tarea.actividad.proyecto.nombre_proyecto) register_activity_project(request.user, documento.tarea.actividad.proyecto, 'Archivo eliminado de la tarea '+documento.tarea.nombre_tarea+' de la actividad '+documento.tarea.actividad.nombre_actividad+' en el proyecto '+documento.tarea.actividad.proyecto.nombre_proyecto) for users in documento.tarea.actividad.actividad_role_set.all(): register_notification(users.role.user, 'fa-file', 'El archivo '+documento.nombre_documento+' ha sido eliminado de la tarea <a href="/project/'+str(documento.tarea.actividad.proyecto.pk)+'/'+documento.tarea.actividad.proyecto.tag_url+'/activities/'+str(documento.tarea.actividad.pk)+'/task/'+str(documento.tarea.pk)+'/detail-task/">'+documento.tarea.nombre_tarea+'</a> de la actividad <a href="/project/'+str(documento.tarea.actividad.proyecto.pk)+'/'+documento.tarea.actividad.proyecto.tag_url+'/activities/'+str(documento.tarea.actividad.pk)+'/detail-activity/">'+documento.tarea.actividad.nombre_actividad+'</a> del proyecto <a href="/project/'+str(documento.tarea.actividad.proyecto.pk)+'/'+documento.tarea.actividad.proyecto.tag_url+'/">'+documento.tarea.actividad.proyecto.nombre_proyecto+'</a>') documento.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar el documento' return HttpResponse(json.dumps(response), "application/json")
def delete_task(request, pk, tag_url, pk_activity, pk_task): response = {} tarea = Tarea.objects.get(pk = pk_task) register_activity_profile_user(request.user, 'Tarea '+tarea.nombre_tarea+' eliminada de la actividad '+tarea.actividad.nombre_actividad+' del proyecto '+tarea.actividad.proyecto.nombre_proyecto) register_activity_project(request.user, tarea.actividad.proyecto, 'Tarea '+tarea.nombre_tarea+' eliminada de la actividad '+tarea.actividad.nombre_actividad+' del proyecto '+tarea.actividad.proyecto.nombre_proyecto) for users in tarea.actividad.actividad_role_set.all(): register_notification(users.role.user, 'fa-tasks', 'La tarea <a href="/project/'+str(tarea.actividad.proyecto.pk)+'/'+tarea.actividad.proyecto.tag_url+'/activities/'+str(tarea.actividad.pk)+'/task/'+str(tarea.pk)+'/detail-task/">'+tarea.nombre_tarea+'</a> ha sido eliminada dentro de la actividad <a href="/project/'+str(tarea.actividad.proyecto.pk)+'/'+tarea.actividad.proyecto.tag_url+'/activities/'+str(tarea.actividad.pk)+'/detail-activity/">'+tarea.actividad.nombre_actividad+'</a> del proyecto <a href="/project/'+str(tarea.actividad.proyecto.pk)+'/'+tarea.actividad.proyecto.tag_url+'/">'+tarea.actividad.proyecto.nombre_proyecto+'</a>') tarea.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar la tarea' return HttpResponse(json.dumps(response), "application/json")
def post(self, request, *args, **kwargs): form = self.form_class(request.POST) if form.is_valid(): user_email = form.cleaned_data["user_email"] try: user = User.objects.get(email = user_email) app_send_email(user, request.META['HTTP_HOST'], 'Cambio de Contraseña', 'email/password_reset_subject.html', '') register_activity_profile_user(user, 'Solicitud cambio de contraseña') register_notification(request.META['HTTP_HOST'], user, 'fa fa-unlock', 'Solicitud Cambio de contraseña') result = self.form_valid(form) messages.success(request, 'Un correo ha sido enviado ha ' +user_email+". Por favor verifica tu correo y sigue las instrucciones.") except User.DoesNotExist: result = self.form_invalid(form) messages.warning(request, 'No hay una cuenta asociada con el correo electronico digitado.') return result
def delete_role_role_from_project(request, pk, tag_url, user): response = {} verify = verify_user_project_administrator(pk, request.user.pk) if verify is True: role_project = Roles_project.objects.get(user = user, proyecto = pk) register_activity_profile_user(request.user, 'Usuario '+role_project.user.email+' eliminado del proyecto '+role_project.proyecto.nombre_proyecto) register_activity_project(request.user, role_project.proyecto, 'Usuario '+role_project.user.email+' eliminado del proyecto '+role_project.proyecto.nombre_proyecto) register_notification(request.META['HTTP_HOST'], role_project.user, 'fa-users', 'El administrador '+request.user.email+' te ha eliminado al proyecto <a href="/project/'+str(role_project.proyecto.pk)+'/'+role_project.proyecto.tag_url+'/">'+role_project.proyecto.nombre_proyecto+'</a>') role_project.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar el usuario' else: response['type'] = 'error' response['msg'] = 'Ha ocurrido un error' return HttpResponse(json.dumps(response), "application/json")
def add_user_project(request, pk, tag_url): project = Proyecto.objects.get(pk = pk, tag_url = tag_url) if request.method == 'POST': response = {} form = AddUserProjectForm(request.POST, instance = project) if form.is_valid(): project_data = form.save(commit = False) project_data.proyecto = project project_data.save() app_send_email(project_data.user, request.META['HTTP_HOST'], 'Proyecto '+project.nombre_proyecto, 'email/project_add_user.html', project) register_activity_profile_user(request.user, 'Usuario '+project_data.user.email+' agregado al proyecto '+project.nombre_proyecto) register_activity_project(request.user, project, 'Usuario '+project_data.user.email+' agregado al proyecto '+project.nombre_proyecto) register_notification(request.META['HTTP_HOST'], project_data.user, 'fa-users', 'El administrador '+request.user.email+' te ha agregado al proyecto <a href="/project/'+str(project.pk)+'/'+project.tag_url+'/">'+project.nombre_proyecto+'</a>') return HttpResponseRedirect(reverse('list_role', kwargs={'pk': project.pk, 'tag_url': project.tag_url})) else: form = AddUserProjectForm(instance = project) return render(request, var_dir_template+'form_add_user_project.html', {'forms': form, 'project': project, 'title': 'Agregar usuarios al proyecto'})
def change_state_activity(request, pk, tag_url, pk_activity, state): response = {} if verify_user_project_administrator(pk, request.user): inactive = Tipo_estado.objects.get(nombre_estado = 'Terminado') actividad = Actividad.objects.get(pk = pk_activity) if actividad.estado.nombre_estado == 'Terminado': return HttpResponseRedirect(reverse_lazy('my_list_project')) else: actividad.estado = inactive actividad.save() response['type'] = 'success' response['msg'] = 'Exito al finalizar la actividad' register_activity_profile_user(request.user, 'Actividad '+actividad.nombre_actividad+' del proyecto '+actividad.proyecto.nombre_proyecto+' ha sido finalizado') register_activity_project(request.user, actividad.proyecto, 'Actividad '+actividad.nombre_actividad+' del proyecto '+actividad.proyecto.nombre_proyecto+' has sido finalizado') for users in actividad.proyecto.roles_project_set.all(): register_notification(users.user, 'fa-briefcase', 'La actividad <a href="/project/'+str(actividad.proyecto.pk)+'/'+actividad.proyecto.tag_url+'/activities/'+str(actividad.pk)+'/detail-activity/">'+actividad.nombre_actividad+'</a> ha sido finalizada del proyecto <a href="/project/'+str(actividad.proyecto.pk)+'/'+actividad.proyecto.tag_url+'/">'+actividad.proyecto.nombre_proyecto+'</a>') else: response['type'] = 'error' response['msg'] = 'Ha ocurrido un error' return HttpResponse(json.dumps(response), "application/json")
def delete_activities(request, pk, tag_url, pk_activity): response = {} actividad = Actividad.objects.get(pk=pk_activity) register_activity_profile_user( request.user, 'Actividad ' + actividad.nombre_actividad + ' eliminada del proyecto ' + actividad.proyecto.nombre_proyecto) register_activity_project( request.user, actividad.proyecto, 'Actividad ' + actividad.nombre_actividad + ' eliminada del proyecto ' + actividad.proyecto.nombre_proyecto) for users in actividad.proyecto.roles_project_set.all(): register_notification( users.user, 'fa-briefcase', 'La actividad ' + actividad.nombre_actividad + ' ha sido elimidada del proyecto <a href="/project/' + str(actividad.proyecto.pk) + '/' + actividad.proyecto.tag_url + '/">' + actividad.proyecto.nombre_proyecto + '</a>') actividad.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar la actividad' return HttpResponse(json.dumps(response), "application/json")
def form_valid(self, form): proyecto = Proyecto.objects.get(pk=self.kwargs['pk']) form.instance.proyecto = proyecto form.instance.estado = Tipo_estado.objects.get(nombre_estado='Activo') form_data = form.save() register_activity_profile_user( self.request.user, 'Actividad ' + form_data.nombre_actividad + ' creada en el proyecto ' + proyecto.nombre_proyecto) register_activity_project( self.request.user, proyecto, 'Actividad ' + form_data.nombre_actividad + ' creada en el proyecto ' + proyecto.nombre_proyecto) for users in proyecto.roles_project_set.all(): register_notification( users.user, 'fa-briefcase', 'La actividad <a href="/project/' + str(proyecto.pk) + '/' + proyecto.tag_url + '/activities/' + str(form_data.pk) + '/detail-activity/">' + form_data.nombre_actividad + '</a> ha sido creada en el proyecto <a href="/project/' + str(proyecto.pk) + '/' + proyecto.tag_url + '/">' + proyecto.nombre_proyecto + '</a>') return super(NewActivitieView, self).form_valid(form)
def delete_document(request, pk, tag_url, pk_activity, pk_task, pk_document): response = {} documento = Documento.objects.get(pk=pk_document) register_activity_profile_user( request.user, 'Archivo eliminado de la tarea ' + documento.tarea.nombre_tarea + ' de la actividad ' + documento.tarea.actividad.nombre_actividad + ' en el proyecto ' + documento.tarea.actividad.proyecto.nombre_proyecto) register_activity_project( request.user, documento.tarea.actividad.proyecto, 'Archivo eliminado de la tarea ' + documento.tarea.nombre_tarea + ' de la actividad ' + documento.tarea.actividad.nombre_actividad + ' en el proyecto ' + documento.tarea.actividad.proyecto.nombre_proyecto) for users in documento.tarea.actividad.actividad_role_set.all(): register_notification( users.role.user, 'fa-file', 'El archivo ' + documento.nombre_documento + ' ha sido eliminado de la tarea <a href="/project/' + str(documento.tarea.actividad.proyecto.pk) + '/' + documento.tarea.actividad.proyecto.tag_url + '/activities/' + str(documento.tarea.actividad.pk) + '/task/' + str(documento.tarea.pk) + '/detail-task/">' + documento.tarea.nombre_tarea + '</a> de la actividad <a href="/project/' + str(documento.tarea.actividad.proyecto.pk) + '/' + documento.tarea.actividad.proyecto.tag_url + '/activities/' + str(documento.tarea.actividad.pk) + '/detail-activity/">' + documento.tarea.actividad.nombre_actividad + '</a> del proyecto <a href="/project/' + str(documento.tarea.actividad.proyecto.pk) + '/' + documento.tarea.actividad.proyecto.tag_url + '/">' + documento.tarea.actividad.proyecto.nombre_proyecto + '</a>') documento.delete() response['type'] = 'success' response['msg'] = 'Exito al eliminar el documento' return HttpResponse(json.dumps(response), "application/json")
def change_state_activity(request, pk, tag_url, pk_activity, state): response = {} if verify_user_project_administrator(pk, request.user): inactive = Tipo_estado.objects.get(nombre_estado='Terminado') actividad = Actividad.objects.get(pk=pk_activity) if actividad.estado.nombre_estado == 'Terminado': return HttpResponseRedirect(reverse_lazy('my_list_project')) else: actividad.estado = inactive actividad.save() response['type'] = 'success' response['msg'] = 'Exito al finalizar la actividad' register_activity_profile_user( request.user, 'Actividad ' + actividad.nombre_actividad + ' del proyecto ' + actividad.proyecto.nombre_proyecto + ' ha sido finalizado') register_activity_project( request.user, actividad.proyecto, 'Actividad ' + actividad.nombre_actividad + ' del proyecto ' + actividad.proyecto.nombre_proyecto + ' has sido finalizado') for users in actividad.proyecto.roles_project_set.all(): register_notification( users.user, 'fa-briefcase', 'La actividad <a href="/project/' + str(actividad.proyecto.pk) + '/' + actividad.proyecto.tag_url + '/activities/' + str(actividad.pk) + '/detail-activity/">' + actividad.nombre_actividad + '</a> ha sido finalizada del proyecto <a href="/project/' + str(actividad.proyecto.pk) + '/' + actividad.proyecto.tag_url + '/">' + actividad.proyecto.nombre_proyecto + '</a>') else: response['type'] = 'error' response['msg'] = 'Ha ocurrido un error' return HttpResponse(json.dumps(response), "application/json")