Ejemplo n.º 1
0
    def save(self, force_insert=False, force_update=False, commit=True):
        zeros = len(self.cleaned_data['start_index']) - 1
        model = self.get_model()

        for n in range(int(self.cleaned_data['start_index']),
                       int(self.cleaned_data['start_index']) +
                       self.cleaned_data['count']):
            name = (self.cleaned_data.get('prefix', '') +
                    self.get_zeros(n, zeros) + str(n))
            service_interval = self.cleaned_data.get('service_interval')

            tool = Tool(name=name,
                        price=self.cleaned_data.get('price'),
                        model=model,
                        service_interval=service_interval,
                        invoice_number=self.cleaned_data['invoice_number'],
                        secondary_name=self.cleaned_data['secondary_name'],
                        buy_date=self.cleaned_data['buy_date'],
                        container=self.cleaned_data['container'],
                        company=self.company)
            tool.save()
Ejemplo n.º 2
0
    def save(self):
        self.csv_file.open()
        dialect = csv.Sniffer().sniff(self.csv_file.read(1024))
        self.csv_file.seek(0)
        has_header = csv.Sniffer().has_header(self.csv_file.read(1024))
        self.csv_file.seek(0)
        reader = csv.reader(self.csv_file, dialect)

        if has_header:
            reader.next()

        for row in reader:
            tool = Tool()
            tool.service_interval = 6
            tool.price = 0
            tool.company = self.company

            for i, field in enumerate(row):
                column_name = self.cleaned_field.get('column_%s' % i)

                if column_name == 'model':
                    field = self.get_model(field)
                elif column_name == 'container':
                    if field == '':
                        field = None
                    else:
                        defaults = {'is_active': True,
                                    'company': self.company}
                        field, created = (Container.objects
                                          .get_or_create(name=field,
                                                         defaults=defaults))
                elif (column_name == 'buy_date' or column_name == 'end_date' or
                      column_name == 'last_service'):
                    if field == '':
                        field = None
                    else:
                        try:
                            field = parse(field)
                        except ValueError:
                            field = None

                if column_name != 'none' and field is not None:
                    setattr(tool, column_name, field)

            try:
                tool.save()
            except Exception, err:
                # if it doesn't work out, just ignore it
                pass