def lagMedlem(alder, utmeldt=False, har_betalt=False, name=""): year = datetime.date.today().year if not name: name = str(alder) if (har_betalt): name += "-betalt" if (utmeldt): name += "-utmeld" medlem = Medlem( fornamn=name, etternamn="E", fodt=year - alder, postnr="5000") if (utmeldt): medlem.utmeldt_dato = datetime.date.today() medlem.save() if (har_betalt): g = Giro(medlem=medlem, belop=80, innbetalt_belop=80, innbetalt=datetime.datetime.now()) g.save() return medlem
def import_medlem(self): liste = csv.reader(open(self.medlem_fil)) mapping = self.create_mapping(headers=liste.next()) if not mapping: logger.error(u"%s: ser ikkje ut som ein medlems-csv fil (manglar header?)" % self.medlem_fil) sys.exit() with reversion.create_revision(): reversion.set_comment(u"Import frå Access") for num, rad in enumerate(liste): tmp = {} for typ in self.CSV_MAP.values(): if typ not in mapping: logger.warning(u"Type '" + unicode(typ) + u"' not in mapping. row = " + unicode(rad)) tmp[typ] = rad[mapping[typ]] \ .decode("utf-8") \ .replace(r"\n", "\n") if not self.clean_medlem_dict(tmp, raw_data=rad): continue val = tmp['_val'] tmp = dict((k, tmp[k]) for k in tmp if not k.startswith('_')) m = Medlem(**tmp) m.save() for v in val: m.set_val(v) # Print first 200 names if num < 199: yield u"{0:>3}. {1}".format(unicode(num), unicode(m)) elif num%200 == 0 and num != 0: transaction.commit() yield unicode(num)