Ejemplo n.º 1
0
    def handle(self, *args, **options):

        try:
            tmpl = args[0]
        except:
            raise CommandError("Usage search_supplier: %s" % (self.args))

        if len(args) == 2:

            try:
                flt = get_qs_filter_dict_from_str(args[1])
            except ValueError:
                raise CommandError(
                    "Wrong QuerySet filter specified. It has to be in form par1=val1 OR par1=val1,par2,val2..."
                )
            qs = Supplier.objects.filter(**flt)
        else:
            qs = Supplier.objects.all()

        attr_names = get_params_from_template(tmpl)

        for p in qs:
            d = get_instance_dict_from_attrs(p, attr_names)
            print((tmpl % d).encode('UTF-8'))

        return 0
Ejemplo n.º 2
0
    def handle(self, *args, **options):
        
        try:
            tmpl = args[0]
        except:
            raise CommandError("Usage search_gas: %s" % (self.args))

        if len(args) == 2:

            try:
                flt = get_qs_filter_dict_from_str(args[1])
            except ValueError:
                raise CommandError("Wrong QuerySet filter specified. It has to be in form par1=val1 OR par1=val1,par2,val2...")
            qs = GAS.objects.filter(**flt)
        else:
            qs = GAS.objects.all()
            
        
        attr_names = get_params_from_template(tmpl)

        for p in qs:
            d = get_instance_dict_from_attrs(p, attr_names)
            print((tmpl % d).encode('UTF-8'))
            
        return 0
Ejemplo n.º 3
0
    def handle(self, *args, **options):

        try:
            tmpl = unicode(args[0])
        except:
            raise CommandError("Usage search_people: %s" % (self.args))

        if len(args) == 2:

            try:
                flt = get_qs_filter_dict_from_str(args[1])
            except ValueError:
                raise CommandError(
                    "Wrong QuerySet filter specified. It has to be in form par1=val1 OR par1=val1,par2,val2..."
                )
            qs = Person.objects.filter(**flt)
        else:
            qs = Person.objects.all()

        attr_names = get_params_from_template(tmpl)

        for p in qs:
            d = get_instance_dict_from_attrs(p, attr_names)
            for k, v in d.items():
                if isinstance(v, QuerySet):
                    qs = []
                    for el in v:
                        qs.append(el.__unicode__())
                    d[k] = qs
            print(tmpl % d).encode('utf-8')

        return 0
Ejemplo n.º 4
0
    def handle(self, *args, **options):
        
        try:
            tmpl = unicode(args[0])
        except:
            raise CommandError("Usage search_people: %s" % (self.args))

        if len(args) == 2:

            try:
                flt = get_qs_filter_dict_from_str(args[1])
            except ValueError:
                raise CommandError("Wrong QuerySet filter specified. It has to be in form par1=val1 OR par1=val1,par2,val2...")
            qs = Person.objects.filter(**flt)
        else:
            qs = Person.objects.all()
            
        
        attr_names = get_params_from_template(tmpl)

        for p in qs:
            d = get_instance_dict_from_attrs(p, attr_names)
            for k,v in d.items():
                if isinstance(v, QuerySet):
                    qs = []
                    for el in v:
                        qs.append(el.__unicode__())
                    d[k] = qs
            print(tmpl % d).encode('utf-8')
            
        return 0
Ejemplo n.º 5
0
    def handle(self, *args, **options):
        """usage sample: $ python manage.py search_gasmember '%(statistic_name)s' """
        try:
            tmpl = args[0]
        except:
            raise CommandError("Usage search_gasmember: %s" % (self.args))

        if len(args) == 2:

            try:
                flt = get_qs_filter_dict_from_str(args[1])
            except ValueError:
                raise CommandError("Wrong QuerySet filter specified. It has to be in form par1=val1 OR par1=val1,par2,val2...")
            qs = GASMember.objects.filter(**flt)
        else:
            qs = GASMember.objects.all()
            
        
        attr_names = get_params_from_template(tmpl)

        #for p in qs.order_by('gas__id_in_des','person__surname'):
        for p in qs.order_by('person__surname'):
            d = get_instance_dict_from_attrs(p, attr_names)
            print((tmpl % d).encode('UTF-8'))
            
        return 0
Ejemplo n.º 6
0
    def handle(self, *args, **options):
        """usage sample: $ python manage.py search_gasmember '%(statistic_name)s' """
        try:
            tmpl = args[0]
        except:
            raise CommandError("Usage search_gasmember: %s" % (self.args))

        if len(args) == 2:

            try:
                flt = get_qs_filter_dict_from_str(args[1])
            except ValueError:
                raise CommandError(
                    "Wrong QuerySet filter specified. It has to be in form par1=val1 OR par1=val1,par2,val2..."
                )
            qs = GASMember.objects.filter(**flt)
        else:
            qs = GASMember.objects.all()

        attr_names = get_params_from_template(tmpl)

        #for p in qs.order_by('gas__id_in_des','person__surname'):
        for p in qs.order_by('person__surname'):
            d = get_instance_dict_from_attrs(p, attr_names)
            print((tmpl % d).encode('UTF-8'))

        return 0
Ejemplo n.º 7
0
    def _prepare_data(self, csv_filename, delimiter, tmpl):

        f = file(csv_filename, "rb")
        csvdata = f.read()
        f.close()

        fieldnames = get_params_from_template(tmpl)
        m = CSVManager(fieldnames=fieldnames, delimiter=delimiter, encoding=ENCODING)
        data = m.read(csvdata)
        log.debug(pprint(m.read(csvdata)))

        return data
Ejemplo n.º 8
0
    def _prepare_data(self, csv_filename, delimiter, tmpl):

        f = file(csv_filename, "rb")
        csvdata = f.read()
        f.close()

        fieldnames = get_params_from_template(tmpl)
        m = CSVManager(fieldnames=fieldnames,
                       delimiter=delimiter,
                       encoding=ENCODING)
        data = m.read(csvdata)
        log.debug(pprint(m.read(csvdata)))

        return data
Ejemplo n.º 9
0
    def _write_data(self, csv_filename, delimiter, csvdata, tmpl):
      
        print "self.simulate",  self.simulate 
        if(self.simulate): 
            log.debug(pprint("SIMULATING write. Content is: %s" % csvdata))
        else:
            log.debug(pprint("WRITING on file %s. Content is: %s" % (csv_filename,csvdata)))
            f = file(csv_filename, "wb")

            fieldnames = get_params_from_template(tmpl)
            m = CSVManager(fieldnames=fieldnames, delimiter=delimiter, encoding=ENCODING)
            data = m.write(csvdata)
            #log.debug(pprint(m.read(csvdata)))

            f.write(data)

            f.close()

        return
Ejemplo n.º 10
0
    def handle(self, *args, **options):

        try:
            model_name = args[0]
            tmpl = args[1]
        except:
            raise CommandError("Usage print_qs: %s" % (self.args))

        try:
            model = get_model(*model_name.split('.'))
        except:
            raise CommandError("No model %s found in app %s" %
                               model_name.split('.'))

        if len(args) == 3:

            try:
                flt = get_qs_filter_dict_from_str(args[2])
            except ValueError:
                raise CommandError(
                    "Wrong QuerySet filter specified. It has to be in form par1=val1 OR par1=val1,par2,val2..."
                )
            qs = model.objects.filter(**flt)
        else:
            qs = model.objects.all()

        attr_names = get_params_from_template(tmpl)

        for p in qs:
            d = get_instance_dict_from_attrs(p, attr_names)
            for k, v in d.items():
                if isinstance(v, QuerySet):
                    qs = []
                    for el in v:
                        qs.append(el.__unicode__())
                    d[k] = qs
            print(tmpl % d).encode('utf-8')

        return 0
Ejemplo n.º 11
0
    def _write_data(self, csv_filename, delimiter, csvdata, tmpl):

        print "self.simulate", self.simulate
        if (self.simulate):
            log.debug(pprint("SIMULATING write. Content is: %s" % csvdata))
        else:
            log.debug(
                pprint("WRITING on file %s. Content is: %s" %
                       (csv_filename, csvdata)))
            f = file(csv_filename, "wb")

            fieldnames = get_params_from_template(tmpl)
            m = CSVManager(fieldnames=fieldnames,
                           delimiter=delimiter,
                           encoding=ENCODING)
            data = m.write(csvdata)
            #log.debug(pprint(m.read(csvdata)))

            f.write(data)

            f.close()

        return
Ejemplo n.º 12
0
    def handle(self, *args, **options):
        
        try:
            model_name = args[0]
            tmpl = args[1]
        except:
            raise CommandError("Usage print_qs: %s" % (self.args))

        try:
            model = get_model(*model_name.split('.'))
        except:
            raise CommandError("No model %s found in app %s" % model_name.split('.'))

        if len(args) == 3:

            try:
                flt = get_qs_filter_dict_from_str(args[2])
            except ValueError:
                raise CommandError("Wrong QuerySet filter specified. It has to be in form par1=val1 OR par1=val1,par2,val2...")
            qs = model.objects.filter(**flt)
        else:
            qs = model.objects.all()
            
        attr_names = get_params_from_template(tmpl)

        for p in qs:
            d = get_instance_dict_from_attrs(p, attr_names)
            for k,v in d.items():
                if isinstance(v, QuerySet):
                    qs = []
                    for el in v:
                        qs.append(el.__unicode__())
                    d[k] = qs
            print(tmpl % d).encode('utf-8')
            
        return 0
Ejemplo n.º 13
0
    def handle(self, *args, **options):
        
        try:
            gas_pk = int(args[0])
            csv_filename = args[1]
        except:
            raise CommandError("Usage import_gasmembers: %s" % (self.args))

        if len(args) > 2:
            delimiter = args[2]
        else:
            delimiter = ";"

        if len(args) == 4:
            tmpl = args[3]
        else:
            tmpl = "%(name)s %(surname)s %(email)s %(city)s"

        # STEP 0: prepare data in dicts
        f = file(csv_filename, "rb")
        csvdata = f.read()
        f.close()

        fieldnames = get_params_from_template(tmpl)
        m = CSVManager(fieldnames=fieldnames, delimiter=delimiter, encoding=ENCODING)
        data = m.read(csvdata)
        log.debug(pprint(m.read(csvdata)))

        # Data prepared

        g = GAS.objects.get(pk=gas_pk)
        g.config.auto_populate_products = True
        g.config.save()

        # STEP 2: process data and create instances
        with transaction.commit_on_success():
            for d in data:
                log.info("#### ---- start new user import... ----####")
                try:
                    user, updated = self._get_or_create_user(d)
                    try:
                        pers = user.person
                    except Person.DoesNotExist:
                        contacts = self._get_or_create_contacts(d)
                        place = self._get_or_create_place(d)
                        pers = self._get_or_create_person(d, contacts, place)
                        pers.user = user
                        pers.save()
                    else:
                        # This is a user of an already created person
                        log.info(("PERSON %s ALREADY EXISTENT" % user.person).decode(ENCODING)) 
                        if updated:
                            log.debug("UPDATE PERSON DETAILS")

                            contacts = self._update_contacts(user.person, d)
                            place = self._update_place(user.person, d)
                            pers = self._update_person(user.person, d, contacts, place, force=True)
                        else:
                            log.debug("SKIP IT")


                except KeyError, e:
                    if e.message not in self.allowed_keys:
                        raise CommandError("Invalid key '%s' provided. Allowed keys in python template are: %s" % (e.message, self.allowed_keys))
                    else:
                        raise CommandError("Key '%s' is REQUIRED." % e.message)

                gm, created = GASMember.objects.get_or_create(person=pers, gas=g)
                gm.save()
                log.info(("CREATED GASMEMBER %s" % gm).decode(ENCODING))