s;(Uc@sddlZddlmZmZddlmZddlTddlmZddlTddl m Z ddl m Z m Z mZddlmZddlZdd lmZdd lmZd ejfd YZdd lmZmZmZdejfdYZdejfdYZdejfdYZdejfdYZdejfdYZ ddl!TdZ"dZ#defdYZ$defdYZ%dZ&ddl'Tddl(Tddl)TdZ*d Z+d!Z,dd"l-m.Z.d#ejfd$YZ/dd%lm0Z0d&e0j1fd'YZ2dd(l3m4Z4d)e0j1fd*YZ5d+e0j1fd,YZ6d-e0j1fd.YZ7d/ejfd0YZ8d1e0j9fd2YZ:d3e0j1fd4YZ;d5e0j1fd6YZ<d7e0j1fd8YZ=e>d9Z?d:e@fd;YZAd<eeAfd=YZBd>eeAfd?YZCd@ZDdS(AiN(tdatet timedelta(t RedirectView(t*(tviewsets(trender_to_response(tListViewt DetailViewtView(t JasperClient(t never_cache(tmethod_decoratortDependenciaViewSetcBseZeZRS((t__name__t __module__t Dependenciatmodel(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR s(t send_mailtBadHeaderErrortEmailMultiAlternativestProyectoViewSetcBs)eZeZeZdZedZRS(cCsptjjd|jj}t|dkr9d|_n|jj|_tjj |_ t t |j |S(Ntusuariot Responsablesi(tUsuariosPerfiltobjectstgettrequesttusertstrt estatus_idtcreadortdatetimetnowt fecha_terminotsuperRtpre_save(tselftobjtperfil((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR#s  c Cs+|r'djg|jjD]}d|jd^q}djg|jjD]}|jd|j^qR}d}d|j|f}|d}|d}ynxg|jjD]V}d |jd |j} } } t| || | g} | j|d | j qWWq't k r#q'Xnd S( s6 #agregar a la columna porcentaje actividades = Actividad.objects.filter(proyecto = self.id, estatus=True)#.annotate(por=Sum('porcentaje')) porcentaje = 0 if actividades: porcentaje = actividades[0].porcentaje * actividades.count() return porcentaje t,t's, t ts]Se le ha asignado un nuevo proyecto de nombre "%s" al usuario o usuarios %s.

skSi desea ingresar al sistema en este momento, de clic en la liga siguiente para ver los detalles.

s       Ingresar al sistema de ProyectossProyecto asignado (%s)sdgtic@tabasco.gob.mxs text/htmlN( tjoint responsabletalltemailt first_namet last_nametnombreRtattach_alternativetsendR( R$R%tcreatedtstcorreostusuariost text_contenttmessagetresponsablefortsubjectt from_emailttotmsg((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyt post_save#s 69   ( R RtProyectoSerializertserializer_classtProyectoRR#tFalseR?(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRs tProyectosViewSetcBseZeZeZdZRS(cCsO|jj|_tjj|_tjjdd|_ t t |j |S(Ntpki( RRRRR R!tEstatusRRtestatusR"RDR#(R$R%((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR#Ls(R RR@RARBRR#(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRDHstComentarioViewSetcBseZeZeZdZRS(cCs7|jj|_tjj|_tt|j|S(N( RRRRR tfechaR"RHR#(R$R%((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR#Xs(R RtComentarioSerializerRAt ComentarioRR#(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRHTstActividadViewSetcBs)eZeZeZdZedZRS(cCs(tjj|_tt|j|S(N(RR RIR"RLR#(R$R%((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR#asc Csetjjd|j}|jdkrax=|D])}td|j|_|jq1Wn d|_|rad|j}dj g|j j D]}d|j d^q}dj g|j j D]}|j d|j^q}d |j} | d |} d } y=x6|j j D]%} t|| | t| j gq WWqatk r]qaXndS( NtproyectoigY@sActividad asignada (%s)R'R(s, R)s$Se le ha asignado la actividad "%s" sa los usuarios %s. sdgtic@tabasco.gob.mx(t ActividadRtfilterRMtcountRt porcentajetsavet descripcionR+RR-R.R/R0RR( R$R%R4t actividadest actividadR;R5R6R7R9R<t usuariofor((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR?es$   69 ' ( R RtActividadSerializerRARNRR#RCR?(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRL^s tEstatusViewSetcBseZeZRS((R RRFR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRXscCs t|dS(Ns index.html(tTemplateResponse(R((s2/home/alberto/Descargas/zalamero/Zalamero/views.pytindexscCs t|dS(Ns pruebaa.html(RY(R((s2/home/alberto/Descargas/zalamero/Zalamero/views.pytpruebast IndexViewcBseZdZRS(cKsdS(Ns/static/zalamero/app/index.html((R$tkwargs((s2/home/alberto/Descargas/zalamero/Zalamero/views.pytget_redirect_urls(R RR^(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR\st ChismosoViewcBseZdZRS(cKsdS(Ns3/static/zalamero/app/templates/index.html#/chismoso((R$R]((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR^s(R RR^(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR_scCs t|dS(Ns login.html(RY(R((s2/home/alberto/Descargas/zalamero/Zalamero/views.pytlogin_scCst|}|jd}|jd}td|d|}d}|dk r|jrt|||jrvtdS|jdkrtdStdSq|d}n |d}t |d i|d 6S( NtusernametpasswordR*s/hometChismosos /chismososcuenta desactivadas-Usuario no valido, verifique sus credencialess login.htmltmsj( tActualizarProyectostPOSTt authenticatetNonet is_activetlogintis_stafftHttpResponseRedirectRaRY(RtactRaRbRtmensaje((s2/home/alberto/Descargas/zalamero/Zalamero/views.pytvalidars             cCst|}tdS(Nt/(tlogoutRl(Rtresponse((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyt logout_users cCsxd}y+tjjd|jj}t|}Wnd}d}nXtdi|jd6|d6|d6dt|S(Nt usuario_ids index.htmlRR&txtcontext_instance( RhRRRRtidRRtRequestContext(RR&Ru((s2/home/alberto/Descargas/zalamero/Zalamero/views.pythomes (tUsert UserViewSetcBsGeZeZejjZejde Zej ddZeZ RS(RkRaRc( R RtUserSerializerRARzRR-tquerysetRORCtexcludeR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR{s (tgenericstComentarioListcBseZeZdZRS(cCs.|jjjd}tjjd|}|S(Nt proyecto_id(RtGETRRKRRO(R$RMR}((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyt get_querysets(R RtComentarioSerializerListRAR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRs(tQt ProyectoListcBs,eZeZeedZdZRS(cOstt|j||S(N(R"Rtdispatch(R$targsR]((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRsc Cs~|jj}tjjd|}t|}t|}|dkr|dkrtj}tjtdd}t jj t d||fddt d dB}qQt jj j dd}n|d krt jj t d|t d|jBjj dd}n:t jj t d|t d|jjBj dd}|jjjdd}|r|j d|}n|jjjdd} | r|j d| }n|jjjdd} | r|j d| }n|jjjdd} | r|j d| }n|jjjdd} | rz| dkre|j d djd}qz|j d | }n|S(NRt AdministradorRctdaysi t fecha__rangeRitestatus_id__iniiitUsuariosR,t&actividad__actividadesusuario__usuarioRRMR*Rwt creador_idt dependenciatdependencia_idRGt0tfecha_estimada_entrega(iii(iii(RRRRRRRttodayRRBRORR-R~RwtdistinctRtorder_by( R$RaR&ttipoRthoytdR}RMRRR,RG((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRs>      7 @: (R RtProyectoSerializerListRAR R RR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRstProyectosTerminadosListcBseZeZdZRS(cCs|jj}tjjd|}t|}|dkrZtjjddjd}n|dkrtjjt d|t d|j Bj j dd j dd j dd }n!tjjt d|dd}|S( NRRRis-idRR,Riii( RRRRRRRBRORRRwRR~(R$RaR&RR}((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRs   ! X!(R RRRAR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRst ActividadListcBseZdZeZdZRS(s+vista para rest url consulta de actividadescCs |jj}tjjd|}t|}|dksE|dkrWtjj}ntjjd|}|jj jdd}|r|jd|}n|jj jdd}|r|jd|}n|jj jdd}|r|jd|}n|S( NRRRRMR*Rt usuario__inRG( RRRRRRRNR-ROR(R$RR&RR}RMRG((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR!s   (R Rt__doc__tActividadSerializerlistRAR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRstActividadesUsuarioViewSetcBs eZeZeZedZRS(cCsntjjd|j}|jdkrax=|D])}td|j|_|jq1Wn d|_dS(NRUigY@(tActividadesUsuarioRRORURPRRQRR(R$R%R4RTRU((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR?<s  (R RtActividadesUsuarioSerializerRARRRCR?(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR9stTerminarActividadViewSetcBs#eZeZdZeZdZRS(t actividad_idcCs%|jj|_tt|j|S(N(RRRR"RR#(R$R%((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR#Ts(R RtTerminarActividadesSerializerRAt pk_url_kwargRRR#(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyROstActividadesUsuarioListcBseZeZdZRS(cCstjj}|jjjd}|jj}|rZtjjd|d|jj}n|jjjdd}|r|jd|}n|S(NRUtactividad__proyectoRR*R(RRR-RRRRRO(R$R}RUtact_responsableR((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR]s $(R Rt ActividadesUsuarioSerializerlistRAR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR[stActividadesUsuarioListAdmincBseZeZdZRS(cCsCtjj}|jjjd}|r?|jd|}n|S(NRU(RRR-RRRRO(R$R}RU((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRns (R RRRAR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRlstUserListcBseZeZdZRS(cCstjjjd}|jdt}|jdd}|jjj d}|rt |}|dkr|jd|}q|jdt |}n|S(Ns-idRkRaRcRUi( RzRR-RRORCR~RRRtinttabs(R$R}RU((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRxs  (R RR|RAR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRvscCs<tjjd|jj}t|di|jd6|d6S(NRts perfil.htmlRtp(RRRRRwRY(Rtuser_idR((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyR&st JasperMixcBs,eZejZdZdZiddZRS(t jasperadmincCsjt|j|j|j}|j||s0dn||}t|d}|j|d|jdS(s Gennara reportes atravez del jasperserver :param path: :param namefile: :param params: :param tipo: default is PDF tPDFtwtdataN(R turlRaRbt runReporttfiletwritetclose(R$tpathtnamefiletparamsRtjtrettf((s2/home/alberto/Descargas/zalamero/Zalamero/views.pytgenerateReports !N( R Rtsettingst JASPERSERVERRRaRbRhR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRs treporte_directorViewcBseZdZRS(cOsG|jd}|jdtjdit|d6dtddS(NRws#/reportes_zalamero/director_reportes/reportes/reporte_director.pdfRtpdfs /media/reportes/reporte_directors.pdf(RRRt MEDIA_ROOTRRl(R$RRR]R((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRs*(R RR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRst reporteViewcBseZdZRS(cOsG|jd}|jdtjdit|d6dtddS(NRws/reportes_zalamero/reportes/reportes/reporte.pdfRRs/media/reportes/reportes.pdf(RRRRRRl(R$RRR]R((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRs*(R RR(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRscCstjjdd}tj}x|D]}|jtdd}|jtdd}||krtjjd|j}d|_ |j q(||kr(tjjd|j}d|_ |j q(q(WdS( NRiiiRiRw(iii( RBRRORRRRRRwRRR(Rt proyectost fecha_actualRRMt proyecto2tpr((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyRes       (ERRRtdjango.views.generic.baseRtZalamero.modelstrest_frameworkRtZalamero.serializerstdjango.shortcutsRtdjango.views.genericRRRtpyjasperclientR tjsontdjango.views.decorators.cacheR tdjango.utils.decoratorsR t ModelViewSetR tdjango.core.mailRRRRRDRHRLRXtdjango.template.responseRZR[R\R_R`tdjango.contrib.authtdjango.contrib.auth.decoratorst django.httpRoRsRytdjango.contrib.auth.modelsRzR{Rt ListAPIViewRtdjango.db.modelsRRRRRtRetrieveUpdateAPIViewRRRRtlogin_requiredR&tobjectRRRRe(((s2/home/alberto/Descargas/zalamero/Zalamero/views.pyts`    2  !            8