Esempio n. 1
0
    def delete(self, request, *args, **kwargs):
        try:
            d = self.get_object()
            deps, msg = get_dep_objects(d)
            print(deps)
            if deps:
                messages.warning(self.request,  ('No se puede Eliminar %(name)s') % {
                    "name": capfirst(force_text(self.model._meta.verbose_name))
                    + ' "' + force_text(d) + '"'
                })
                raise Exception(msg)


            d.delete()
            msg = _(' %(name)s "%(obj)s" fuel eliminado satisfactorialmente.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(d)
            }
            if not d.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
        except Exception as e:
            messages.error(request, e)
            log.warning(force_text(e), extra=log_params(self.request))
        return HttpResponseRedirect(self.success_url)
Esempio n. 2
0
    def form_valid(self, form):
        sid = transaction.savepoint()
        try:
            self.object = form.save(commit=True)
            headquar = Headquar()
            headquar.name = self.request.POST.get("sede")
            headquar.association_id = UserToken.get_association_id(
                self.request.session)
            headquar.enterprise = self.object
            headquar.save()

            msg = _('The %(name)s "%(obj)s" was added successfully.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(self.object)
            }
            if self.object.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
            return super(EnterpriseCreateView, self).form_valid(form)
        except Exception, e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.success(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return super(EnterpriseCreateView, self).form_invalid(form)
Esempio n. 3
0
 def delete(self, request, *args, **kwargs):
     try:
         d = self.get_object()
         # rastrear dependencias OK
         deps, msg = get_dep_objects(d)
         if deps:
             messages.warning(self.request,  _('Cannot delete %(name)s') % {
                 "name": capfirst(force_text(self.model._meta.verbose_name))
                 + ' "' + force_text(d) + '"'
             })
             raise Exception(msg)
         '''
         if d.module_set.count() > 0:
             raise Exception(
                 (u"Solucion <b>%(name)s</b> tiene modulos asignados.") % {"name": d.name})
         if d.association_set.count() > 0:
             raise Exception(
                 (u"Solucion <b>%(name)s</b> está asignado en asociaciones.") % {"name": d.name})
         if d.enterprise_set.count() > 0:
             raise Exception(
                 (u"Solucion <b>%(name)s</b> está asignado en empresas.") % {"name": d.name})
         '''
         d.delete()
         msg = _('The %(name)s "%(obj)s" was deleted successfully.') % {
             'name': capfirst(force_text(self.model._meta.verbose_name)),
             'obj': force_text(d)
         }
         if not d.id:
             messages.success(self.request, msg)
             log.warning(msg, extra=log_params(self.request))
     except Exception, e:
         messages.error(request, e)
         log.warning(force_text(e), extra=log_params(self.request))
Esempio n. 4
0
    def form_valid(self, form):
        try:
            association_name = self.request.POST.get("association_name")
            try:
                form.instance.association = Association.objects.get(
                    name=association_name)
            except:
                raise Exception(
                    u"La asociación <b>%s</b> no existe, vuelva a intentar " %
                    (self.request.POST.get("association_name")))
            # salvar registro

            self.object = form.save(commit=True)
            msg = _('The %(name)s "%(obj)s" was changed successfully.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(self.object)
            }
            messages.success(self.request, msg)
            log.warning(msg, extra=log_params(self.request))
            return super(HeadquarAssociationUpdateView, self).form_valid(form)
        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return super(HeadquarAssociationUpdateView,
                         self).form_invalid(form)
Esempio n. 5
0
    def form_valid(self, form):
        sid = transaction.savepoint()
        try:
            self.object = form.save(commit=True)
            headquar = Headquar()
            headquar.name = self.request.POST.get("sede")
            headquar.association_id = UserToken.get_association_id(
                self.request.session)
            headquar.enterprise = self.object
            headquar.save()

            msg = _('The %(name)s "%(obj)s" was added successfully.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(self.object)
            }
            if self.object.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
            return super(EnterpriseCreateView, self).form_valid(form)
        except Exception as e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.success(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return super(EnterpriseCreateView, self).form_invalid(form)
Esempio n. 6
0
    def delete(self, request, *args, **kwargs):
        sid = transaction.savepoint()
        try:
            association = Association.objects.get(
                id=UserToken.get_association_id(request.session))
            if Enterprise.objects.filter(headquar__association_id=UserToken.get_association_id(request.session)).count() == 1:
                raise Exception(
                    (u"Asociación <b>%(name)s</b> no puede quedar sin ninguna sede asociada.") % {"name": association.name})

            d = self.get_object()
            # rastrear dependencias
            deps, msg = get_dep_objects(d)
            if deps:
                messages.warning(self.request,  _('Cannot delete %(name)s') % {
                    "name": capfirst(force_text(self.model._meta.verbose_name))
                    + ' "' + force_text(d) + '"'
                })
                raise Exception(msg)

            d.delete()
            msg = _('The %(name)s "%(obj)s" was deleted successfully.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(d)
            }
            if not d.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
        except Exception, e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.error(request, e)
            log.warning(force_text(e), extra=log_params(self.request))
Esempio n. 7
0
    def delete(self, request, *args, **kwargs):
        try:
            d = self.get_object()
            deps, msg = get_dep_objects(d)
            print(deps)
            if deps:
                messages.warning(
                    self.request, ('No se puede Eliminar %(name)s') % {
                        "name":
                        capfirst(force_text(self.model._meta.verbose_name)) +
                        ' "' + force_text(d) + '"'
                    })
                raise Exception(msg)

            d.delete()
            msg = _(
                ' %(name)s "%(obj)s" fuel eliminado satisfactorialmente.') % {
                    'name': capfirst(force_text(
                        self.model._meta.verbose_name)),
                    'obj': force_text(d)
                }
            if not d.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
        except Exception as e:
            messages.error(request, e)
            log.warning(force_text(e), extra=log_params(self.request))
        return HttpResponseRedirect(self.success_url)
Esempio n. 8
0
 def form_valid(self, form):
     try:
         self.object = form.save(commit=True)
         msg = _('The %(name)s "%(obj)s" was changed successfully.') % {
             'name': capfirst(force_text(self.model._meta.verbose_name)),
             'obj': force_text(self.object)
         }
         messages.success(self.request, msg)
         log.warning(msg, extra=log_params(self.request))
         return super(HeadquarUpdateView, self).form_valid(form)
     except Exception, e:
         messages.error(self.request, e)
         log.warning(force_text(e), extra=log_params(self.request))
         return super(HeadquarUpdateView, self).form_invalid(form)
Esempio n. 9
0
 def form_valid(self, form):
     try:
         self.object = form.save(commit=True)
         msg = _('The %(name)s "%(obj)s" was changed successfully.') % {
             'name': capfirst(force_text(self.model._meta.verbose_name)),
             'obj': force_text(self.object)
         }
         messages.success(self.request, msg)
         log.warning(msg, extra=log_params(self.request))
         return super(HeadquarUpdateView, self).form_valid(form)
     except Exception as e:
         messages.error(self.request, e)
         log.warning(force_text(e), extra=log_params(self.request))
         return super(HeadquarUpdateView, self).form_invalid(form)
Esempio n. 10
0
    def dispatch(self, request, *args, **kwargs):
        key = self.kwargs.get(self.pk_url_kwarg, None)
        pk = SecurityKey.is_valid_key(request, key, 'solution_upd')
        if not pk:
            return HttpResponseRedirect(self.success_url)
        self.kwargs['pk'] = pk
        try:
            self.get_object()
            '''
            ctx_dict = {'activation_key': 'eee',
                        'expiration_days': 2,
                        'site': 'localhost:8000'}
            subject = render_to_string(
                'registration/activation_email_subject.txt',
                ctx_dict)
            # Email subject *must not* contain newlines

            subject = ''.join(subject.splitlines())

            message = render_to_string(
                'registration/activation_email.txt', ctx_dict)
            send_mail(
                subject, message, settings.DEFAULT_FROM_EMAIL,
                ['*****@*****.**'], fail_silently=False)

            # send_mail(
            #    'Subject here', 'Here is the message.', '*****@*****.**',
            #    ['*****@*****.**'], fail_silently=False)
            '''
        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return HttpResponseRedirect(self.success_url)
        return super(SolutionUpdateView,
                     self).dispatch(request, *args, **kwargs)
Esempio n. 11
0
    def dispatch(self, request, *args, **kwargs):
        key = self.kwargs.get(self.pk_url_kwarg, None)
        pk = SecurityKey.is_valid_key(request, key, 'solution_upd')
        if not pk:
            return HttpResponseRedirect(self.success_url)
        self.kwargs['pk'] = pk
        try:
            self.get_object()
            '''
            ctx_dict = {'activation_key': 'eee',
                        'expiration_days': 2,
                        'site': 'localhost:8000'}
            subject = render_to_string(
                'registration/activation_email_subject.txt',
                ctx_dict)
            # Email subject *must not* contain newlines

            subject = ''.join(subject.splitlines())

            message = render_to_string(
                'registration/activation_email.txt', ctx_dict)
            send_mail(
                subject, message, settings.DEFAULT_FROM_EMAIL,
                ['*****@*****.**'], fail_silently=False)

            # send_mail(
            #    'Subject here', 'Here is the message.', '*****@*****.**',
            #    ['*****@*****.**'], fail_silently=False)
            '''
        except Exception, e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return HttpResponseRedirect(self.success_url)
Esempio n. 12
0
 def dispatch(self, request, *args, **kwargs):
     
     try:
         self.get_object()
     except Exception as e:
         messages.error(self.request, e)
         log.warning(force_text(e), extra=log_params(self.request))
         return HttpResponseRedirect(self.success_url)
     return super(PersonaDeleteView, self).dispatch(request, *args, **kwargs)
Esempio n. 13
0
 def form_valid(self, form):
     self.object = form.save(commit=True)
     msg = _('The %(name)s "%(obj)s" was changed successfully.') % {
         'name': capfirst(force_text(self.model._meta.verbose_name)),
         'obj': force_text(self.object)
     }
     messages.success(self.request, msg)
     log.warning(force_text(msg), extra=log_params(self.request))
     return super(AssociationUpdateView, self).form_valid(form)
Esempio n. 14
0
 def form_valid(self, form):
     self.object = form.save(commit=True)
     msg = _('The %(name)s "%(obj)s" was changed successfully.') % {
         'name': capfirst(force_text(self.model._meta.verbose_name)),
         'obj': force_text(self.object)
     }
     messages.success(self.request, msg)
     log.warning(force_text(msg), extra=log_params(self.request))
     return super(AssociationUpdateView, self).form_valid(form)
Esempio n. 15
0
 def dispatch(self, request, *args, **kwargs):
     
     try:
         self.get_object()
     except Exception as e:
         messages.error(self.request, e)
         log.warning(force_text(e), extra=log_params(self.request))
         return HttpResponseRedirect(self.success_url)
     return super(FuncionesVitalesDeleteView, self).dispatch(request, *args, **kwargs)
Esempio n. 16
0
    def form_valid(self, form):
        try:
            form.instance.association_id = UserToken.get_association_id(
                self.request.session)
            form.instance.enterprise_id = UserToken.get_enterprise_id(
                self.request.session)

            self.object = form.save(commit=True)
            msg = _('The %(name)s "%(obj)s" was added successfully.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(self.object)
            }
            if self.object.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
            return super(HeadquarCreateView, self).form_valid(form)
        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return super(HeadquarCreateView, self).form_invalid(form)
Esempio n. 17
0
    def form_valid(self, form):
        try:
            form.instance.association_id = UserToken.get_association_id(
                self.request.session)
            form.instance.enterprise_id = UserToken.get_enterprise_id(
                self.request.session)

            self.object = form.save(commit=True)
            msg = _('The %(name)s "%(obj)s" was added successfully.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(self.object)
            }
            if self.object.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
            return super(HeadquarCreateView, self).form_valid(form)
        except Exception, e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return super(HeadquarCreateView, self).form_invalid(form)
Esempio n. 18
0
    def delete(self, request, *args, **kwargs):
        sid = transaction.savepoint()
        try:
            association = Association.objects.get(
                id=UserToken.get_association_id(request.session))
            if Enterprise.objects.filter(
                    headquar__association_id=UserToken.get_association_id(
                        request.session)).count() == 1:
                raise Exception((
                    u"Asociación <b>%(name)s</b> no puede quedar sin ninguna sede asociada."
                ) % {"name": association.name})

            d = self.get_object()
            # rastrear dependencias
            deps, msg = get_dep_objects(d)
            if deps:
                messages.warning(
                    self.request,
                    _('Cannot delete %(name)s') % {
                        "name":
                        capfirst(force_text(self.model._meta.verbose_name)) +
                        ' "' + force_text(d) + '"'
                    })
                raise Exception(msg)

            d.delete()
            msg = _('The %(name)s "%(obj)s" was deleted successfully.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(d)
            }
            if not d.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
        except Exception as e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.error(request, e)
            log.warning(force_text(e), extra=log_params(self.request))
        return HttpResponseRedirect(self.success_url)
Esempio n. 19
0
 def dispatch(self, request, *args, **kwargs):
     key = self.kwargs['pk']
     pk = SecurityKey.is_valid_key(request, key, 'solution_del')
     if not pk:
         return HttpResponseRedirect(self.success_url)
     self.kwargs['pk'] = pk
     try:
         self.get_object()
     except Exception, e:
         messages.error(self.request, e)
         log.warning(force_text(e), extra=log_params(self.request))
         return HttpResponseRedirect(self.success_url)
Esempio n. 20
0
 def dispatch(self, request, *args, **kwargs):
     key = self.kwargs['pk']
     state = self.kwargs['state']
     pk = SecurityKey.is_valid_key(request, key, 'enterprise_%s' % state)
     if not pk:
         return HttpResponseRedirect(self.success_url)
     try:
         self.object = self.model.objects.get(pk=pk)
     except Exception, e:
         messages.error(self.request, e)
         log.warning(force_text(e), extra=log_params(self.request))
         return HttpResponseRedirect(self.success_url)
Esempio n. 21
0
    def form_valid(self, form):
        self.object = form.save(commit=False)

        self.object.usuario = self.request.user

        msg = _(' %(name)s "%(obj)s" fue creado satisfactoriamente.') % {
            'name': capfirst(force_text(self.model._meta.verbose_name)),
            'obj': force_text(self.object)
        }
        if self.object.id:
            messages.success(self.request, msg)
            log.warning(msg, extra=log_params(self.request))
        return super(PersonaCreateView, self).form_valid(form)
Esempio n. 22
0
    def dispatch(self, request, *args, **kwargs):
        key = self.kwargs['pk']
        state = self.kwargs['state']
        pk = SecurityKey.is_valid_key(request, key, 'solution_%s' % state)
        if not pk:
            return HttpResponseRedirect(self.success_url)
        try:
            self.object = self.model.objects.get(pk=pk)
        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return HttpResponseRedirect(self.success_url)

        msg = _('The %(name)s "%(obj)s" was %(action)s successfully.') % {
            'name': capfirst(force_text(self.model._meta.verbose_name)),
            'obj': force_text(self.object),
            'action':
            (_('reactivated') if state == 'rea' else _('inactivated'))
        }
        mse = _('The %(name)s "%(obj)s" is already %(action)s.') % {
            'name': capfirst(force_text(self.model._meta.verbose_name)),
            'obj': force_text(self.object),
            'action': (_('active') if state == 'rea' else _('inactive'))
        }
        try:
            if state == 'ina' and not self.object.is_active:
                raise Exception(mse)
            else:
                if state == 'rea' and self.object.is_active:
                    raise Exception(mse)
                else:
                    self.object.is_active = (True if state == 'rea' else False)
                    self.object.save()
                    messages.success(self.request, msg)
                    log.warning(msg, extra=log_params(self.request))
        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
        return HttpResponseRedirect(self.success_url)
Esempio n. 23
0
    def dispatch(self, request, *args, **kwargs):
        key = self.kwargs['pk']
        state = self.kwargs['state']
        pk = SecurityKey.is_valid_key(request, key, 'solution_%s' % state)
        if not pk:
            return HttpResponseRedirect(self.success_url)
        try:
            self.object = self.model.objects.get(pk=pk)
        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return HttpResponseRedirect(self.success_url)

        msg = _('The %(name)s "%(obj)s" was %(action)s successfully.') % {
            'name': capfirst(force_text(self.model._meta.verbose_name)),
            'obj': force_text(self.object),
            'action': (_('reactivated') if state == 'rea' else _('inactivated'))
        }
        mse = _('The %(name)s "%(obj)s" is already %(action)s.') % {
            'name': capfirst(force_text(self.model._meta.verbose_name)),
            'obj': force_text(self.object),
            'action': (_('active') if state == 'rea' else _('inactive'))
        }
        try:
            if state == 'ina' and not self.object.is_active:
                raise Exception(mse)
            else:
                if state == 'rea' and self.object.is_active:
                    raise Exception(mse)
                else:
                    self.object.is_active = (True if state == 'rea' else False)
                    self.object.save()
                    messages.success(self.request, msg)
                    log.warning(msg, extra=log_params(self.request))
        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
        return HttpResponseRedirect(self.success_url)
Esempio n. 24
0
 def dispatch(self, request, *args, **kwargs):
     key = self.kwargs['pk']
     pk = SecurityKey.is_valid_key(request, key, 'solution_del')
     if not pk:
         return HttpResponseRedirect(self.success_url)
     self.kwargs['pk'] = pk
     try:
         self.get_object()
     except Exception as e:
         messages.error(self.request, e)
         log.warning(force_text(e), extra=log_params(self.request))
         return HttpResponseRedirect(self.success_url)
     return super(SolutionDeleteView,
                  self).dispatch(request, *args, **kwargs)
Esempio n. 25
0
    def dispatch(self, request, *args, **kwargs):
        key = self.kwargs.get(self.pk_url_kwarg, None)
        pk = SecurityKey.is_valid_key(request, key, 'headquar_uas')
        if not pk:
            return HttpResponseRedirect(self.success_url)
        self.kwargs['pk'] = pk
        try:
            self.get_object()

        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return HttpResponseRedirect(self.success_url)
        return super(HeadquarAssociationUpdateView, self).dispatch(request, *args, **kwargs)
Esempio n. 26
0
    def form_valid(self, form):
        self.object = form.save(commit=False)
        
        self.object.usuario = self.request.user

        
        msg = _(' %(name)s "%(obj)s" fue creado satisfactoriamente.') % {
            'name': capfirst(force_text(self.model._meta.verbose_name)),
            'obj': force_text(self.object)
        }
        if self.object.id:
            messages.success(self.request, msg)
            log.warning(msg, extra=log_params(self.request))
        return super(PersonaCreateView, self).form_valid(form)
Esempio n. 27
0
 def delete(self, request, *args, **kwargs):
     try:
         d = self.get_object()
         # rastrear dependencias OK
         deps, msg = get_dep_objects(d)
         if deps:
             messages.warning(
                 self.request,
                 _('Cannot delete %(name)s') % {
                     "name":
                     capfirst(force_text(self.model._meta.verbose_name)) +
                     ' "' + force_text(d) + '"'
                 })
             raise Exception(msg)
         '''
         if d.module_set.count() > 0:
             raise Exception(
                 (u"Solucion <b>%(name)s</b> tiene modulos asignados.") % {"name": d.name})
         if d.association_set.count() > 0:
             raise Exception(
                 (u"Solucion <b>%(name)s</b> está asignado en asociaciones.") % {"name": d.name})
         if d.enterprise_set.count() > 0:
             raise Exception(
                 (u"Solucion <b>%(name)s</b> está asignado en empresas.") % {"name": d.name})
         '''
         d.delete()
         msg = _('The %(name)s "%(obj)s" was deleted successfully.') % {
             'name': capfirst(force_text(self.model._meta.verbose_name)),
             'obj': force_text(d)
         }
         if not d.id:
             messages.success(self.request, msg)
             log.warning(msg, extra=log_params(self.request))
     except Exception as e:
         messages.error(request, e)
         log.warning(force_text(e), extra=log_params(self.request))
     return HttpResponseRedirect(self.success_url)
Esempio n. 28
0
    def dispatch(self, request, *args, **kwargs):
        key = self.kwargs.get(self.pk_url_kwarg, None)
        pk = SecurityKey.is_valid_key(request, key, 'headquar_uas')
        if not pk:
            return HttpResponseRedirect(self.success_url)
        self.kwargs['pk'] = pk
        try:
            self.get_object()

        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return HttpResponseRedirect(self.success_url)
        return super(HeadquarAssociationUpdateView,
                     self).dispatch(request, *args, **kwargs)
Esempio n. 29
0
    def form_valid(self, form):
        try:
            association_name = self.request.POST.get("association_name")
            try:
                form.instance.association = Association.objects.get(
                    name=association_name)
            except:
                raise Exception(
                    u"La asociación <b>%s</b> no existe, vuelva a intentar " %
                    (self.request.POST.get("association_name")))
            # salvar registro

            self.object = form.save(commit=True)
            msg = _('The %(name)s "%(obj)s" was changed successfully.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(self.object)
            }
            messages.success(self.request, msg)
            log.warning(msg, extra=log_params(self.request))
            return super(HeadquarAssociationUpdateView, self).form_valid(form)
        except Exception, e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return super(HeadquarAssociationUpdateView, self).form_invalid(form)
Esempio n. 30
0
    def form_valid(self, form):
        sid = transaction.savepoint()
        try:
            association = Association(
                name=form.cleaned_data['association_name'],
                type_a=form.cleaned_data['type_e'],
                solution=form.cleaned_data['solution'])
            association.save()

            self.object = form.save(commit=False)
            self.object.save()
            headquar = Headquar(name="Principal",
                                association=association,
                                enterprise=self.object)
            headquar.save()

            solution_id = self.request.POST.get("solution")
            solution = Solution.objects.get(pk=solution_id)

            # asigna permisos al usuario para manipular datos de cierta sede,
            # empresa o asociación
            user = self.request.user
            enterprise = self.object
            group_dist_list = []
            for module in solution.module_set.all():  # .distinct()
                for group in module.initial_groups.all():
                    if len(group_dist_list) == 0:
                        group_dist_list.append(group.id)
                        user.groups.add(group)

                        user_association = UserAssociation()
                        user_association.user = user
                        user_association.association = association
                        user_association.group = group
                        user_association.save()

                        user_enterprise = UserEnterprise()
                        user_enterprise.user = user
                        user_enterprise.enterprise = enterprise
                        user_enterprise.group = group
                        user_enterprise.save()

                        user_headquar = UserHeadquar()
                        user_headquar.user = user
                        user_headquar.headquar = headquar
                        user_headquar.group = group
                        user_headquar.save()
                    else:
                        if group.id not in group_dist_list:
                            group_dist_list.append(group.id)
                            user.groups.add(group)

                            user_association = UserAssociation()
                            user_association.user = user
                            user_association.association = association
                            user_association.group = group
                            user_association.save()

                            user_enterprise = UserEnterprise()
                            user_enterprise.user = user
                            user_enterprise.enterprise = enterprise
                            user_enterprise.group = group
                            user_enterprise.save()

                            user_headquar = UserHeadquar()
                            user_headquar.user = user
                            user_headquar.headquar = headquar
                            user_headquar.group = group
                            user_headquar.save()

            msg = _('The %(name)s "%(obj)s" was added successfully.') % {
                'name': force_text(self.model._meta.verbose_name),
                'obj': force_text(self.object)
            }

            if self.object.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
            return super(EnterpriseAssociationCreateView,
                         self).form_valid(form)

        except Exception as e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.success(self.request, e)
            log.warning(e, extra=log_params(self.request))
            return super(EnterpriseAssociationCreateView,
                         self).form_invalid(form)
Esempio n. 31
0
    def form_valid(self, form):
        sid = transaction.savepoint()
        try:
            association = Association(
                name=form.cleaned_data['association_name'],
                type_a=form.cleaned_data['type_e'],
                solution=form.cleaned_data['solution'])
            association.save()

            self.object = form.save(commit=False)
            self.object.save()
            headquar = Headquar(
                name="Principal",
                association=association,
                enterprise=self.object)
            headquar.save()

            solution_id = self.request.POST.get("solution")
            solution = Solution.objects.get(pk=solution_id)

            # asigna permisos al usuario para manipular datos de cierta sede,
            # empresa o asociación
            user = self.request.user
            enterprise = self.object
            group_dist_list = []
            for module in solution.module_set.all():  # .distinct()
                for group in module.initial_groups.all():
                    if len(group_dist_list) == 0:
                        group_dist_list.append(group.id)
                        user.groups.add(group)

                        user_association = UserAssociation()
                        user_association.user = user
                        user_association.association = association
                        user_association.group = group
                        user_association.save()

                        user_enterprise = UserEnterprise()
                        user_enterprise.user = user
                        user_enterprise.enterprise = enterprise
                        user_enterprise.group = group
                        user_enterprise.save()

                        user_headquar = UserHeadquar()
                        user_headquar.user = user
                        user_headquar.headquar = headquar
                        user_headquar.group = group
                        user_headquar.save()
                    else:
                        if group.id not in group_dist_list:
                            group_dist_list.append(group.id)
                            user.groups.add(group)

                            user_association = UserAssociation()
                            user_association.user = user
                            user_association.association = association
                            user_association.group = group
                            user_association.save()

                            user_enterprise = UserEnterprise()
                            user_enterprise.user = user
                            user_enterprise.enterprise = enterprise
                            user_enterprise.group = group
                            user_enterprise.save()

                            user_headquar = UserHeadquar()
                            user_headquar.user = user
                            user_headquar.headquar = headquar
                            user_headquar.group = group
                            user_headquar.save()

            msg = _('The %(name)s "%(obj)s" was added successfully.') % {
                'name': force_text(self.model._meta.verbose_name),
                'obj': force_text(self.object)
            }

            if self.object.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
            return super(EnterpriseAssociationCreateView, self).form_valid(form)

        except Exception as e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.success(self.request, e)
            log.warning(e, extra=log_params(self.request))
            return super(EnterpriseAssociationCreateView, self).form_invalid(form)