def trabajo_enviar_mail_agenciados(request,trabajo_id): trabajo=Trabajo.objects.get(pk=trabajo_id) if request.method == 'POST': form = MailAgenciadosForm(trabajo.rol_set.all(),request.POST) if form.is_valid(): template = loader.get_template('trabajo/rol/admin/cuerpo_mail_agenciado.html') for rol in trabajo.rol_set.all(): asunto = form.cleaned_data['asunto'] agencia=Agencia.get_activa(request) ccs = [request.user.email,agencia.email] postulaciones = form.cleaned_data[MailAgenciadosForm.get_rol_fieldname(rol)] text_content = _(u'Este mensagem deve ser visualizado em formato HTML.') for postulacion in postulaciones: if postulacion.agenciado.mail: context = RequestContext(request, {'postulacion':postulacion, }) html_content = template.render(context) destinatarios = [postulacion.agenciado.mail] + [x.email for x in postulacion.agenciado.mailagenciado_set.all()] msg = MailAgencia(asunto, text_content, destinatarios,ccs=ccs) msg.set_html_body(html_content) msg.send() else: messages.error(request, _(u'Agenciado %s não tem um email definido.'%postulacion.agenciado)) messages.success(request, _(u'Trabalho enviado com sucesso a os agenciados selecionados.')) return redirect('/admin/trabajo/trabajo/%s/'%trabajo_id) else: asunto = _(u'Detalhe da Postulação para Trabalho "%s"') % (trabajo.titulo,) form = MailAgenciadosForm(trabajo.rol_set.all(),initial={'asunto': asunto}) return render(request,'trabajo/trabajo/admin/enviar_mail_agenciados.html',{'form': form, 'trabajo': trabajo, })
def trabajo_enviar_mail_productora(request,trabajo_id): trabajo=Trabajo.objects.get(pk=trabajo_id) if request.method == 'POST': form = MailProductoraForm(request.POST) if form.is_valid(): template = loader.get_template('trabajo/trabajo/cuerpo_mail_productora.html') context = RequestContext(request, {'trabajo':trabajo, }) asunto = form.cleaned_data['asunto'] destinatarios = form.get_destinatarios() agencia=Agencia.get_activa(request) ccs = [request.user.email,agencia.email] text_content = _(u'Este mensagem deve ser visualizado em formato HTML.') html_content = template.render(context) msg = MailAgencia(asunto, text_content, destinatarios,ccs=ccs) msg.set_html_body(html_content) msg.send() messages.success(request, _(u'Trabalho enviado com sucesso a os seguintes destinatarios y copias: %(destinatarios)s %(copias)s') % {'destinatarios':str(destinatarios),'copias':str(ccs)}) return redirect('/admin/trabajo/trabajo/%s/'%trabajo_id) else: asunto = _(u'Detalhe de trabalho "%s"') % (trabajo.titulo,) form = MailProductoraForm(initial={'destinatarios':trabajo.productora.mail, 'asunto': asunto }) return render(request,'trabajo/trabajo/enviar_mail_productora.html',{'form': form, 'trabajo': trabajo, })
def trabajo_enviar_mail_agenciados(request, trabajo_id): trabajo = Trabajo.objects.get(pk=trabajo_id) if request.method == 'POST': form = MailAgenciadosForm(trabajo.rol_set.all(), request.POST) if form.is_valid(): template = loader.get_template( 'trabajo/rol/admin/cuerpo_mail_agenciado.html') for rol in trabajo.rol_set.all(): asunto = form.cleaned_data['asunto'] agencia = Agencia.get_activa(request) ccs = [request.user.email, agencia.email] postulaciones = form.cleaned_data[ MailAgenciadosForm.get_rol_fieldname(rol)] text_content = _( u'Este mensagem deve ser visualizado em formato HTML.') for postulacion in postulaciones: if postulacion.agenciado.mail: context = { 'postulacion': postulacion, } html_content = template.render(context) destinatarios = [postulacion.agenciado.mail] + [ x.email for x in postulacion.agenciado.mailagenciado_set.all() ] msg = MailAgencia(asunto, text_content, destinatarios, ccs=ccs) msg.set_html_body(html_content) msg.send() else: messages.error( request, _(u'Agenciado %s não tem um email definido.' % postulacion.agenciado)) messages.success( request, _(u'Trabalho enviado com sucesso a os agenciados selecionados.' )) return redirect('/admin/trabajo/trabajo/%s/' % trabajo_id) else: asunto = _(u'Detalhe da Postulação para Trabalho "%s"') % ( trabajo.titulo, ) form = MailAgenciadosForm(trabajo.rol_set.all(), initial={'asunto': asunto}) return render(request, 'trabajo/trabajo/admin/enviar_mail_agenciados.html', { 'form': form, 'trabajo': trabajo, })
def enviar_mail(request): # Se crea el formulario con el campo trabajo y el campo estado en funcion del modelo Postulación # En caso de ser un metodo POST: if request.method == 'POST': form = EnvioMailForm(request.POST) # Se valida el formulario if form.is_valid(): template = loader.get_template('correo/base.html') context = { 'cuerpo': form.cleaned_data['cuerpo'], } asunto = form.cleaned_data['asunto'] agencia = Agencia.get_activa(request) destinatarios = [ agencia.email, ] ccs = [ request.user.email, ] bccs = form.get_destinatarios() text_content = _( u'Este mensagem deve ser visualizado em formato HTML.') html_content = template.render(context) msg = MailAgencia(asunto, text_content, destinatarios, ccs=ccs, bccs=bccs) msg.set_html_body(html_content) msg.send() messages.success(request, _(u'Mails enviados con éxito')) return redirect('/admin/agencia/agenciado/') # Sino else: # Se obtienen los agenciados asociados a los IDs if request.method == 'GET': ids = request.GET['ids'] else: ids = request.POST['ids'] listado_ids = ids.split(',') agenciados = Agenciado.objects.filter(id__in=listado_ids) destinatarios = [] for agenciado in agenciados: for mail in agenciado.get_mails(): destinatarios.append(mail) form = EnvioMailForm( initial={'destinatarios': '\n'.join(destinatarios)}) return render(request, 'admin/agencia/agenciado/enviar_mail.html', {'form': form})
def process_request(self, request): if Agencia.get_activa().activa: return None if request.path in PATH_CREACION_AGENCIA: return None if request.path in PATH_EXCEPCIONES: return None if len(Agencia.objects.all()) == 0: return redirect('/admin/agencia/agencia/add/') edit_path= '/admin/agencia/agencia/%s/' % Agencia.objects.first().id if edit_path == request.path: return None return redirect(edit_path)
def enviar(self): template = loader.get_template(self.get_template_name()) context = Context(self.get_context_dict()) asunto = self.get_notification_title() destinatarios = [self.email_destinatario] agencia=Agencia.get_activa() ccs = self.get_ccs() text_content = _(u'Este mensagem deve ser visualizado em formato HTML.') html_content = template.render(context) msg = MailAgencia(asunto, text_content, destinatarios,ccs=ccs) msg.set_html_body(html_content) msg.send() self.fecha_envio = datetime.datetime.now() self.clean() self.save()
def enviar(self): template = loader.get_template(self.get_template_name()) asunto = self.get_notification_title() destinatarios = [self.email_destinatario] agencia = Agencia.get_activa() ccs = self.get_ccs() text_content = _( u'Este mensagem deve ser visualizado em formato HTML.') html_content = template.render(self.get_context_dict()) msg = MailAgencia(asunto, text_content, destinatarios, ccs=ccs) msg.set_html_body(html_content) msg.send() self.fecha_envio = now() self.clean() self.save()
def enviar_mail(request): # Se crea el formulario con el campo trabajo y el campo estado en funcion del modelo Postulación # En caso de ser un metodo POST: if request.method == 'POST': form = EnvioMailForm(request.POST) # Se valida el formulario if form.is_valid(): template = loader.get_template('correo/base.html') context = {'cuerpo':form.cleaned_data['cuerpo'], } asunto = form.cleaned_data['asunto'] agencia=Agencia.get_activa(request) destinatarios = [agencia.email,] ccs = [request.user.email,] bccs = form.get_destinatarios() text_content = _(u'Este mensagem deve ser visualizado em formato HTML.') html_content = template.render(context) msg = MailAgencia(asunto, text_content, destinatarios,ccs=ccs,bccs=bccs) msg.set_html_body(html_content) msg.send() messages.success(request, _(u'Mails enviados con éxito')) return redirect('/admin/agencia/agenciado/') # Sino else: # Se obtienen los agenciados asociados a los IDs if request.method == 'GET': ids = request.GET['ids'] else: ids = request.POST['ids'] listado_ids=ids.split(',') agenciados=Agenciado.objects.filter(id__in=listado_ids) destinatarios = [] for agenciado in agenciados: for mail in agenciado.get_mails(): destinatarios.append(mail) form = EnvioMailForm(initial={'destinatarios': '\n'.join(destinatarios)}) return render(request,'admin/agencia/agenciado/enviar_mail.html',{'form':form})
def trabajo_enviar_mail_productora(request, trabajo_id): trabajo = Trabajo.objects.get(pk=trabajo_id) if request.method == 'POST': form = MailProductoraForm(request.POST) if form.is_valid(): template = loader.get_template( 'trabajo/trabajo/cuerpo_mail_productora.html') context = { 'trabajo': trabajo, } asunto = form.cleaned_data['asunto'] destinatarios = form.get_destinatarios() agencia = Agencia.get_activa(request) ccs = [request.user.email, agencia.email] text_content = _( u'Este mensagem deve ser visualizado em formato HTML.') html_content = template.render(context) msg = MailAgencia(asunto, text_content, destinatarios, ccs=ccs) msg.set_html_body(html_content) msg.send() messages.success( request, _(u'Trabalho enviado com sucesso a os seguintes destinatarios y copias: %(destinatarios)s %(copias)s' ) % { 'destinatarios': str(destinatarios), 'copias': str(ccs) }) return redirect('/admin/trabajo/trabajo/%s/' % trabajo_id) else: asunto = _(u'Detalhe de trabalho "%s"') % (trabajo.titulo, ) form = MailProductoraForm(initial={ 'destinatarios': trabajo.productora.mail, 'asunto': asunto }) return render(request, 'trabajo/trabajo/enviar_mail_productora.html', { 'form': form, 'trabajo': trabajo, })
def init_with_context(self, context): site_name = get_admin_site_name(context) # append a group for "Administration" & "Applications" self.children.append(modules.Group( _('Aplicaciones Principales'), column=1, collapsible=True, children = [ modules.ModelList( column=1, collapsible=False, models=('iampacks.agencia.agencia.models.Agenciado',), ), modules.ModelList( column=1, collapsible=False, models=( 'iampacks.agencia.trabajo.models.Trabajo', ), ), modules.ModelList( column=1, collapsible=False, models=( 'iampacks.agencia.trabajo.models.ItemPortfolio', ), ), ] )) # append an app list module for "Applications" self.children.append(modules.ModelList( _('Diccionario de datos'), collapsible=True, column=1, models=('iampacks.agencia.perfil.*',) )) # append an app list module for "Administration" self.children.append(modules.ModelList( _('Administracion de usuarios y permisos'), column=1, collapsible=False, models=('django.contrib.*',), )) self.add_ultimos_trabajos(5) # append a recent actions module self.children.append(modules.RecentActions( _('Recent Actions'), limit=5, collapsible=True, column=2, )) self.add_eventos_del_dia() self.add_proximos_eventos() # append another link list module for "support". self.children.append(modules.LinkList( _('Configuracion'), column=3, children=[ { 'title': _(u'Agencia'), 'url': Agencia.get_activa().get_url_admin(), 'external': False, }, ] )) # append another link list module for "support". self.children.append(modules.LinkList( _('Links'), column=3, children=[ { 'title': settings.AMBIENTE.dominio, 'url': '/', 'external': False, }, { 'title': _(u'Proponer una mejora'), 'url': 'https://github.com/sebasgoldberg/iamcast/issues/new#', 'external': True, }, ] ))
def actualizar_asunto(self,asunto): agencia = Agencia.get_activa() return ugettext_lazy(u'%(nombre)s - %(asunto)s') % {'nombre':agencia.nombre, 'asunto':asunto}
def get_reply_to(self): agencia = Agencia.get_activa() return agencia.email
def get_context_dict(self): return {'agenciado': self.agenciado, 'ambiente': settings.AMBIENTE, 'password': self.password, 'agencia': Agencia.get_activa()}
def add_agencia(request): """ Devuelve la agencia activa """ return {'agencia':Agencia.get_activa(request)}
def init_with_context(self, context): site_name = get_admin_site_name(context) # append a group for "Administration" & "Applications" self.children.append( modules.Group( _('Aplicaciones Principales'), column=1, collapsible=True, children=[ modules.ModelList( column=1, collapsible=False, models=('iampacks.agencia.agencia.models.Agenciado', ), ), modules.ModelList( column=1, collapsible=False, models=('iampacks.agencia.trabajo.models.Trabajo', ), ), modules.ModelList( column=1, collapsible=False, models=( 'iampacks.agencia.trabajo.models.ItemPortfolio', ), ), ])) # append an app list module for "Applications" self.children.append( modules.ModelList(_('Diccionario de datos'), collapsible=True, column=1, models=('iampacks.agencia.perfil.*', ))) # append an app list module for "Administration" self.children.append( modules.ModelList( _('Administracion de usuarios y permisos'), column=1, collapsible=False, models=('django.contrib.*', ), )) self.add_ultimos_trabajos(5) # append a recent actions module self.children.append( modules.RecentActions( _('Recent Actions'), limit=5, collapsible=True, column=2, )) self.add_eventos_del_dia() self.add_proximos_eventos() # append another link list module for "support". self.children.append( modules.LinkList(_('Configuracion'), column=3, children=[ { 'title': _(u'Agencia'), 'url': Agencia.get_activa().get_url_admin(), 'external': False, }, ])) # append another link list module for "support". self.children.append( modules.LinkList( _('Links'), column=3, children=[ { 'title': settings.AMBIENTE.dominio, 'url': '/', 'external': False, }, { 'title': _(u'Proponer una mejora'), 'url': 'https://github.com/sebasgoldberg/iamcast/issues/new#', 'external': True, }, ]))
def get_context_dict(self): return { 'agenciado': self.agenciado, 'password': self.password, 'agencia': Agencia.get_activa() }
def agencia(request): """ Devuelve la agencia activa """ return {'agencia': Agencia.get_activa(request)}