Пример #1
0
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
Пример #2
0
    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)