Esempio n. 1
0
def Deserializer(stream_or_string, **options):
    """
    Deserialize a stream or string of YAML data.
    """
    if isinstance(stream_or_string, basestring):
        stream = StringIO(stream_or_string)
    else:
        stream = stream_or_string

    model_builder = None
    for values in yaml.load_all(stream):
        if 'model' in values:
            modelspec = values.pop('model')
            #model_class = eval(modelspec)
            app, model = modelspec.split(".")
            # print app,model
            model_class = models.get_model(app, model)
            if not model_class:
                raise Exception("invalid model:" + modelspec)
            model_builder = Instantiator(model_class)
        if model_builder is None:
            raise DataError("No model specified")
        # print model_class
        instance = model_builder.build(**values)
        # yield instance
        #~ if model_class == User:
            #~ instance.set_password(yamldict.get('password'))
        # data files are required to use "!!python/object:", so the
        # yamldict is a Python object
        # self.add_node(yamldict)
        # print instance.pk, instance
        #~ instance.save()
        #~ m2m_data = {}
        yield FakeDeserializedObject(instance)
Esempio n. 2
0
def Deserializer(stream_or_string, **options):
    """
    Deserialize a stream or string of YAML data.
    """
    if isinstance(stream_or_string, basestring):
        stream = StringIO(stream_or_string)
    else:
        stream = stream_or_string

    model_builder = None
    for values in yaml.load_all(stream):
        if values.has_key('model'):
            modelspec = values.pop('model')
            #model_class = eval(modelspec)
            app, model = modelspec.split(".")
            # print app,model
            model_class = models.get_model(app, model)
            if not model_class:
                raise Exception("invalid model:" + modelspec)
            model_builder = Instantiator(model_class)
        if model_builder is None:
            raise DataError("No model specified")
        # print model_class
        instance = model_builder.build(**values)
        # yield instance
        #~ if model_class == User:
        #~ instance.set_password(yamldict.get('password'))
        # data files are required to use "!!python/object:", so the
        # yamldict is a Python object
        # self.add_node(yamldict)
        # print instance.pk, instance
        #~ instance.save()
        #~ m2m_data = {}
        yield FakeDeserializedObject(instance)
Esempio n. 3
0
File: demo.py Progetto: DarioGT/lino
def objects():

    if False:

        guest_role = Instantiator('cal.GuestRole').build
        yield guest_role(**dd.babel_values(
            'name',
            de=u"Teilnehmer",
            fr=u"Participant",
            en=u"Participant",
            et=u"Osavõtja",
        ))
        yield guest_role(**dd.babel_values(
            'name',
            de=u"Reiseführer",
            fr=u"Guide",
            en=u"Guide",
            et=u"Reisijuht",
        ))
        yield guest_role(**dd.babel_values(
            'name',
            de=u"Vorsitzender",
            fr=u"Président",
            en=u"Presider",
            et=u"Eesistuja",
        ))
        yield guest_role(**dd.babel_values(
            'name',
            de=u"Protokollführer",
            fr=u"Greffier",
            en=u"Reporter",
            et=u"Sekretär",
        ))

    if False:

        place = Instantiator('cal.Room').build
        yield place(**dd.babel_values(
            'name',
            de=u"Büro",
            fr=u"Bureau",
            en=u"Office",
        ))
        yield place(**dd.babel_values(
            'name',
            de=u"Beim Klienten",
            fr=u"Chez le client",
            en=u"A the client's",
        ))
        yield place(**dd.babel_values(
            'name',
            de=u"beim Arbeitgeber",
            fr=u"chez l'employeur",
            en=u"at employer's",
        ))
Esempio n. 4
0
def objects():
    ptype = Instantiator('properties.PropType').build

    division = ptype(
        **dd.babel_values('name', **dict(
            en="Division", fr="Division", de=u"Abteilung")))
    yield division
    divchoice = Instantiator(
        'properties.PropChoice', 'value', type=division).build
    yield divchoice('1', **dd.babel_values(
        'text', **dict(en="Furniture", de=u"Möbel", fr=u"Meubles")))
    yield divchoice('2', **dd.babel_values(
        'text', **dict(en="Web hosting", de=u"Hosting", fr=u"Hosting")))
Esempio n. 5
0
def objects():
    author = Instantiator('tables.Author',
                          'first_name last_name country').build
    adams = author("Douglas", "Adams", "UK")
    yield adams
    camus = author("Albert", "Camus", "FR")
    yield camus
    huttner = author("Hannes", "Huttner", "DE")
    yield huttner

    book = Instantiator('tables.Book', 'title author published price').build
    yield book("Last chance to see...", adams, 1990, '9.90')
    yield book("The Hitchhiker's Guide to the Galaxy", adams, 1978, '19.90')
    yield book("Das Blaue vom Himmel", huttner, 1975, '14.90')
    yield book("L'etranger", camus, 1957, '6.90')
Esempio n. 6
0
File: std.py Progetto: DarioGT/lino
def objects():
    ptype = Instantiator('properties.PropType').build
    properties = dd.resolve_app('properties')
    yield ptype(id=1,
                **dd.babel_values(
                    'name',
                    **dict(
                        en="Present or not",
                        de=u"Vorhanden oder nicht",
                        fr=u"Présent ou pas",
                        et=u"Olemas või mitte",
                        nl=u"Ja of niet",
                    )))
    yield ptype(id=2,
                choicelist=properties.HowWell.actor_id,
                default_value=properties.HowWell.default.value,
                **dd.babel_values(
                    'name',
                    **dict(
                        en="Rating",
                        de=u"Bewertung",
                        et=u"Hinnang",
                        fr=u"Appréciation(?)",
                        nl=u"Hoe goed",
                    )))
Esempio n. 7
0
def objects():
    tft = Instantiator('tinymce.TextFieldTemplate',
                       "name description text").build

    yield tft("hello", "Inserts 'Hello, world!'", """<div>Hello, world!</div>""")
    #~ yield tft("mfg","",'<p>Mit freundlichen Gr&uuml;&szlig;en<br><p class="data_field">root</p>')
    yield tft("mfg", "", '<p>Mit freundlichen Gr&uuml;&szlig;en<br><p>{{request.subst_user or request.user}}</p>')
Esempio n. 8
0
File: demo.py Progetto: TonisPiip/xl
def objects():
    User = rt.modules.users.User
    Note = rt.modules.notes.Note
    NoteType = rt.modules.notes.NoteType

    USERS = Cycler(User.objects.all())
    if settings.SITE.project_model is not None:
        Project = settings.SITE.project_model
        qs = Project.objects.all()
        if qs.count() > 10:
            qs = qs[:10]
        PROJECTS = Cycler(qs)
    NTYPES = Cycler(NoteType.objects.all())

    notetype = Instantiator('notes.NoteType').build
    tel = notetype(name="phone report")
    yield tel
    yield notetype(name="todo")

    for i in range(100):
        kw = dict(
            user=USERS.pop(),
            date=settings.SITE.demo_date(days=i - 400),
            subject=SUBJECTS.pop(),  # "Important note %d" % i,
            type=NTYPES.pop())
        if settings.SITE.project_model is not None:
            kw.update(project=PROJECTS.pop())
        yield Note(**kw)

    EventType = rt.models.notes.EventType
    system_note = EventType(**dd.str2kw('name', _("System note")))
    yield system_note
    settings.SITE.site_config.system_note_type = system_note
    yield settings.SITE.site_config
Esempio n. 9
0
def objects():
    countries = dd.resolve_app('countries')
    city = Instantiator(countries.Place,
                        "zip_code name",
                        country='BE',
                        type=countries.PlaceTypes.city).build
    for ln in belgian_cities.splitlines():
        ln = ln.strip()
        if ln and ln[0] != '#':
            args = ln.split(None, 1)
            o = city(*args)
            # print "%r %r" % (o.zip_code, o.name)
            yield o
            #~ print __name__, "20121114"
            #~ return
    for ln in belgian_cities_nl_fr.splitlines():
        ln = ln.strip()
        if ln and ln[0] != '#':
            args = ln.split('|')
            if len(args) != 4:
                raise Exception("Invalid format : \n%s" % ln)
            args = [x.strip() for x in args]
            o = city(zip_code=args[0],
                     **dd.babel_values('name',
                                       nl=args[1],
                                       fr=args[2],
                                       de=args[3],
                                       en=args[3]))
            yield o
Esempio n. 10
0
def objects():

    Language = Instantiator('languages.Language', "id").build

    yield Language('ger', **dd.str2kw('name', _("German")))
    yield Language('fre', **dd.str2kw('name', _("French")))
    yield Language('eng', **dd.str2kw('name', _("English")))
    yield Language('dut', **dd.str2kw('name', _("Dutch")))
    yield Language('est', **dd.str2kw('name', _("Estonian")))
Esempio n. 11
0
File: std.py Progetto: DarioGT/lino
def objects():

    mailType = Instantiator('notes.NoteType').build

    yield mailType(**dd.babel_values(
        'name', en="Enrolment", fr=u'Inscription', de=u"Einschreibeformular"))
    yield mailType(**dd.babel_values(
        'name', en="Timetable", fr=u'Horaire', de=u"Stundenplan"))
    yield mailType(
        **dd.babel_values('name', en="Letter", fr=u'Lettre', de=u"Brief"))
Esempio n. 12
0
 def get_data_rows(self, ar):
     flt = ar.param_values.filter
     build = Instantiator(flt.content_type.model_class()).build
     for ln in ar.param_values.data.splitlines():
         ln = ln.strip()
         if ln:
             kw = dict()
             cells = flt.field_sep.split(ln)
             for item in flt.item_set.all():
                 if item.column:
                     kw[item.field] = cells[item.column - 1]
             yield build(**kw)
Esempio n. 13
0
File: std.py Progetto: forexblog/xl
def objects():

    Partner = rt.models.contacts.Partner
    Person = rt.models.contacts.Person

    for ct in COMPANY_TYPES:
        yield companyType(**ct)

    # qs = rt.models.contacts.RoleType.objects.filter(rt.lookup_filter('name', "CEO"))
    # if qs.count():
    #     raise Exception("Oops, there is already a CEO in {}".format(qs))
    # dd.logger.info("Creating the CEO function")
    yield roletype(**dd.str2kw('name', _("CEO"), can_sign=True))
    yield roletype(**dd.str2kw('name', _("Director"), can_sign=True))
    yield roletype(**dd.str2kw('name', _("Secretary")))
    yield roletype(**dd.str2kw('name', _("IT manager")))
    yield roletype(**dd.str2kw('name', _("President"), can_sign=True))
    # yield roletype(**babel_values('name', en="Manager", fr='Gérant', de="Geschäftsführer", et="Tegevjuht"))
    # yield roletype(**babel_values('name', en="Director", fr='Directeur', de="Direktor", et="Direktor"))
    # yield roletype(**babel_values('name', en="Secretary", fr='Secrétaire', de="Sekretär", et="Sekretär"))
    # yield roletype(**babel_values('name', en="IT Manager", fr='Gérant informatique', de="EDV-Manager", et="IT manager"))
    # yield roletype(**babel_values('name', en="President", fr='Président', de="Präsident", et="President"))

    if dd.is_installed('excerpts') and dd.is_installed('appypod'):
        ExcerptType = rt.models.excerpts.ExcerptType
        ContentType = rt.models.contenttypes.ContentType
        yield ExcerptType(
            build_method='appypdf',
            template="TermsConditions.odt",
            content_type=ContentType.objects.get_for_model(Person),
            **dd.str2kw('name', _("Terms & conditions")))

    if dd.is_installed('contenttypes'):
        # TODO: remove this because the feature isn't used. But afterwards adapt
        # the doctests!
        ContentType = rt.models.contenttypes.ContentType
        I = Instantiator('gfks.HelpText', 'content_type field help_text').build
        t = ContentType.objects.get_for_model(Person)

        #~ yield I(t,'birth_date',u"""\
        #~ Unkomplette Geburtsdaten sind erlaubt, z.B.
        #~ <ul>
        #~ <li>00.00.1980 : irgendwann in 1980</li>
        #~ <li>00.07.1980 : im Juli 1980</li>
        #~ <li>23.07.0000 : Geburtstag am 23. Juli, Alter unbekannt</li>
        #~ </ul>
        #~ """)

        ct = ContentType.objects.get_for_model(Partner)
        yield I(
            ct, 'language', u"""\
    Die Sprache, in der Dokumente ausgestellt werden sollen.
    """)
Esempio n. 14
0
def objects():

    productcat = Instantiator('products.ProductCat').build
    product = Instantiator('products.Product', "cat name").build

    food = productcat(**dd.babel_values(
        'name', en="Food", et="Toit", de="Lebensmittel", fr="Alimentaire"))
    yield food
    yield product(
        food, "Le petit Fagnard",
        **dd.babel_values(
            'description',
            en="Handmade cheese from Hautes Ardennes",
            et="Käsitsi valmistatud juust Ardenne'idest",
            de="Handgemachter Käse aus den Hohen Ardennen",
            fr="Fromage artisanal au lait cru des Hautes Ardennes"))

    if False:  # we need an address parser which either returns or
        # creates the city. Here we don't want to know whether
        # `countries.fixtures.be` has been loaded.
        company = Instantiator('contacts.Company',
                               "name country:isocode city:zip_code").build
        yield company("Fromagerie du Troufleur", "BE", "4950 Waimes")
Esempio n. 15
0
def objects():

    from lino_xl.lib.outbox.models import RecipientType
    Person = rt.modules.contacts.Person

    root = settings.SITE.user_model.objects.get(username='******')

    mail = Instantiator('outbox.Mail').build
    recipient_to = Instantiator(
        'outbox.Recipient', type=RecipientType.to).build

    for p in Person.objects.filter(email=''):
        try:
            p.first_name.encode('ascii')
            p.email = p.first_name.lower() + "@example.com"
            p.save()
        except UnicodeError:
            pass

    for person in Person.objects.exclude(email=''):
        m = mail(user=root, subject='Welcome %s!' % person.first_name)
        yield m
        yield recipient_to(mail=m, partner=person)
Esempio n. 16
0
def objects():
    #~ city = Instantiator('countries.Place','name country').build
    #~ yield city('Vigala','EE')
    if 'et' in settings.SITE.languages:
        lang = 'et'
    else:
        # if language 'et' is not available, use the default language
        lang = settings.SITE.languages[0]

    company = Instantiator(
        "contacts.Company", country='EE', language=lang).build
    yield company(name=u'Minu Firma OÜ')
    yield company(name=u'Mets ja Puu OÜ')
    yield company(name=u'Kenavälja OÜ')

    person = Instantiator("contacts.Person",
                          "first_name last_name", country='EE').build
    yield person(u'Aare', u'Aaresild')
    yield person(u'Ahti', u'Aaspere')
    yield person(u'Peeter', u'Bach')
    yield person(u'Tiina', u'Engelbert')
    yield person(u'Inge', u'Hallik')
    yield person(u'Harri', u'Hunt')
    yield person(u'Ingmar', u'Iliste')
    yield person(u'Jaan', u'Janno')
    yield person(u'Jaan', u'Jõgi')
    yield person(u'Karl', u'Kask')
    yield person(u'Leo', u'Lepamets')
    yield person(u'Madis', u'Mäeorg')
    yield person(u'Natalja', u'Nagel')
    yield person(u'Ott', u'Ojavee')
    yield person(u'Piret', u'Paas')
    yield person(u'Rannes', u'Rannala')
    yield person(u'Silja', u'Sääsk')
    yield person(u'Tõnu', u'Tamm')
    yield person(u'Tiina', u'Türnpuu')
    yield person(u'Urmas', u'Uukivi')
Esempio n. 17
0
def site_company_objects():

    company = Instantiator('contacts.Company',
                           "name zip_code city:name street street_no",
                           country='EE').build
    rumma = company('Rumma & Ko OÜ',
                    '78003',
                    'Vigala',
                    'Uus tn',
                    '1',
                    url="http://www.saffre-rumma.net/")
    if dd.is_installed('vat'):
        rumma.vat_id = "EE100588749"
        # a vat_id is required for generating valid XML from payment order
    yield rumma

    settings.SITE.site_config.update(site_company=rumma)
Esempio n. 18
0
def objects():

    Partner = rt.models.contacts.Partner
    Person = rt.models.contacts.Person
    
    for ct in COMPANY_TYPES:
        yield companyType(**ct)

    yield roletype(**babel_values('name', en="Manager", fr='Gérant', de="Geschäftsführer", et="Tegevjuht"))
    yield roletype(**babel_values('name', en="Director", fr='Directeur', de="Direktor", et="Direktor"))
    yield roletype(**babel_values('name', en="Secretary", fr='Secrétaire', de="Sekretär", et="Sekretär"))
    yield roletype(**babel_values('name', en="IT Manager", fr='Gérant informatique', de="EDV-Manager", et="IT manager"))
    yield roletype(**babel_values('name', en="President", fr='Président', de="Präsident", et="President"))

    
    if dd.is_installed('excerpts') and dd.is_installed('appypod'):
        ExcerptType = rt.models.excerpts.ExcerptType
        ContentType = rt.models.contenttypes.ContentType
        yield ExcerptType(
            build_method='appypdf',
            template="TermsConditions.odt",
            content_type=ContentType.objects.get_for_model(Person),
            **dd.str2kw('name', _("Terms & conditions")))

    if dd.is_installed('contenttypes'):
        ContentType = rt.models.contenttypes.ContentType
        I = Instantiator('gfks.HelpText',
                         'content_type field help_text').build
        t = ContentType.objects.get_for_model(Person)

        #~ yield I(t,'birth_date',u"""\
    #~ Unkomplette Geburtsdaten sind erlaubt, z.B.
    #~ <ul>
    #~ <li>00.00.1980 : irgendwann in 1980</li>
    #~ <li>00.07.1980 : im Juli 1980</li>
    #~ <li>23.07.0000 : Geburtstag am 23. Juli, Alter unbekannt</li>
    #~ </ul>
    #~ """)

        t = ContentType.objects.get_for_model(Partner)
        yield I(t, 'language', u"""\
    Die Sprache, in der Dokumente ausgestellt werden sollen.
    """)
Esempio n. 19
0
def objects():
    author = Instantiator(
        'contacts.Person', 'first_name last_name').build
    yield author("Douglas", "Adams")
    yield author("Albert", "Camus")
    yield author("Hannes", "Huttner")
Esempio n. 20
0
File: std.py Progetto: forexblog/xl
def objects():
    cal = rt.models.cal
    PlannerColumns = cal.PlannerColumns
    # add = Instantiator('cal.Priority', 'ref').build
    # yield add('1', **dd.babel_values('name', en=u"very urgent", de=u"sehr dringend",   fr=u"très urgent", et=u"väga kiire"))
    # yield add('3', **dd.babel_values('name', en=u"urgent", de=u"dringend",   fr=u"urgent", et="kiire"))
    # yield add('5', **dd.babel_values('name', en=u"normal", de=u"normal",   fr=u"normal", et="keskmine"))
    # yield add('9', **dd.babel_values('name', en=u"not urgent", de=u"nicht dringend",   fr=u"pas urgent", et="mitte kiire"))

    calendar = Instantiator('cal.Calendar').build
    general = calendar(**dd.str2kw('name', _("General")))
    yield general
    # settings.SITE.site_config.site_calendar = general
    d = dd.demo_date()
    if d.month > 4:
        d = d.replace(month=1, day=1)
    else:
        d = d.replace(month=1, day=1, year=d.year-1)
    settings.SITE.site_config.update(
        site_calendar=general, hide_events_before=d)

    # yield settings.SITE.site_config

    event_type = Instantiator('cal.EventType').build

    yield event_type(
        planner_column=PlannerColumns.external,
        is_appointment=True,
        fill_presences=True,
        max_days=0,
        **dd.str2kw('name', _("Absences")))

    holidays = event_type(
        planner_column=PlannerColumns.external,
        is_appointment=False,
        fill_presences=False,
        max_days=0,
        all_rooms=True, **dd.str2kw('name', _("Holidays")))
    yield holidays
    meeting = event_type(
        is_appointment=True,
        fill_presences=True,
        planner_column=PlannerColumns.external,
        default_duration="1:00", **dd.str2kw('name', _("Meeting")))
    yield meeting
    yield event_type(
        planner_column=PlannerColumns.internal,
        is_appointment=False,
        fill_presences=True,
        transparent=True,
        default_duration="0:30",
        **dd.str2kw('name', _("Internal")))

    RecurrentEvent = rt.models.cal.RecurrentEvent
    add = Instantiator(RecurrentEvent, event_type=holidays).build

    def holiday(month, day, en, de, fr, et=None):
        if et is None:
            et = en
        return add(
            every_unit=Recurrencies.yearly,
            monday=True, tuesday=True, wednesday=True, thursday=True,
            friday=True, saturday=True, sunday=True,
            every=1,
            start_date=datetime.date(
                year=cal.DEMO_START_YEAR,
                month=month, day=day),
            **dd.babelkw('name', en=en, de=de, fr=fr, et=et))
    yield holiday(1, 1, "New Year's Day", "Neujahr", "Jour de l'an", "Uusaasta")
    yield holiday(5, 1, "International Workers' Day", "Tag der Arbeit", "Premier Mai", "kevadpüha")
    yield holiday(7, 21, "National Day", "Nationalfeiertag", "Fête nationale", "Belgia riigipüha")
    yield holiday(8, 15, "Assumption of Mary", "Mariä Himmelfahrt", "Assomption de Marie")
    yield holiday(10, 31, "All Souls' Day", "Allerseelen", "Commémoration des fidèles défunts")
    yield holiday(11, 1, "All Saints' Day", "Allerheiligen", "Toussaint")
    yield holiday(11, 11, "Armistice with Germany", "Waffenstillstand", "Armistice")
    yield holiday(12, 25, "Christmas", "Weihnachten", "Noël", "Esimene Jõulupüha")

    easter1 = easter(cal.DEMO_START_YEAR)

    def relative_holiday(offset, name):
        return add(
            every_unit=Recurrencies.easter, every=1,
            start_date=easter1+relativedelta(days=offset),
            **dd.str2kw('name', name))

    yield relative_holiday(0, _("Easter sunday"))
    yield relative_holiday(1, _("Easter monday"))
    yield relative_holiday(39, _("Ascension of Jesus"))
    yield relative_holiday(50, _("Pentecost"))
    yield relative_holiday(-2, _("Good Friday"))
    yield relative_holiday(-46, _("Ash Wednesday"))
    yield relative_holiday(-48, _("Rosenmontag"))

    ar = settings.SITE.login()
    for obj in RecurrentEvent.objects.all():
        if not obj.update_reminders(ar):
            raise Exception("Oops, %s generated no events" % obj)

    # event policies

    kw = dict()
    for wd in WORKDAYS:
        kw[wd.name] = True
    kw.update(event_type=meeting)
    exam_policy = Instantiator(
        'cal.EventPolicy', 'every',
        every_unit=DurationUnits.months, **kw).build
    yield exam_policy(
        1, start_time="9:00",
        **dd.str2kw('name', _("Every month")))
    yield exam_policy(
        2, start_time="9:00",
        **dd.str2kw('name', _("Every 2 months")))
    yield exam_policy(
        3, **dd.str2kw('name', _("Every 3 months")))

    exam_policy = Instantiator(
        'cal.EventPolicy', 'every',
        every_unit=DurationUnits.weeks, **kw).build
    yield exam_policy(
        2, start_time="9:00",
        **dd.str2kw('name', _("Every 2 weeks")))

    exam_policy = Instantiator(
        'cal.EventPolicy', 'every',
        every_unit=DurationUnits.days, **kw).build
    yield exam_policy(
        10, max_events=1, start_time="9:00",
        **dd.str2kw('name', _("Once after 10 days")))

    exam_policy = Instantiator('cal.EventPolicy').build
    yield exam_policy(**dd.str2kw('name', _("Other")))
Esempio n. 21
0
def objects():

    ClientContactType = rt.modules.pcsw.ClientContactType

    Person = resolve_model('contacts.Person')
    Company = resolve_model('contacts.Company')
    #~ Contact = resolve_model('contacts.Contact')
    Role = resolve_model('contacts.Role')
    RoleType = resolve_model('contacts.RoleType')
    Authority = resolve_model('users.Authority')
    #~ Country = resolve_model('countries.Country')
    Client = resolve_model('pcsw.Client')

    person = Instantiator(Person).build
    client = Instantiator(Client).build
    company = Instantiator(Company).build
    #~ contact = Instantiator(Contact).build
    role = Instantiator(Role).build
    #~ link = Instantiator(Link).build
    #~ exam_policy = Instantiator('isip.ExamPolicy').build

    Place = resolve_model('countries.Place')
    #~ Job = resolve_model('jobs.Job')
    #~ Place = settings.SITE.modules.countries.Place
    StudyType = resolve_model('cv.StudyType')
    #~ Country = resolve_model('countries.Country')
    Property = resolve_model('properties.Property')

    eupen = Place.objects.get(name__exact='Eupen')
    #~ stvith = Place.objects.get(zip_code__exact='4780')
    stvith = Place.objects.get(name__in=('Sankt Vith', 'Saint-Vith'))
    kettenis = Place.objects.get(name__exact='Kettenis')
    vigala = Place.objects.get(name__exact='Vigala')
    ee = countries.Country.objects.get(pk='EE')
    be = belgium = countries.Country.objects.get(isocode__exact='BE')
    andreas = Person.objects.get(name__exact="Arens Andreas")
    annette = Person.objects.get(name__exact="Arens Annette")
    hans = Person.objects.get(name__exact="Altenberg Hans")
    ulrike = Person.objects.get(name__exact="Charlier Ulrike")
    erna = Person.objects.get(name__exact=u"Ärgerlich Erna")

    ## Coaching types
    # We use only abbreviated names in `CoachingType.name` because the
    # users usually know these abbrevs.

    kw = dd.str2kw('name', _("Colleague"))
    COLLEAGUE = cal.GuestRole(**kw)
    yield COLLEAGUE

    # id must match `isip.ContactBase.person_changed`
    ASD = pcsw.CoachingType(
        id=isip.COACHINGTYPE_ASD,
        does_integ=False,
        does_gss=True,
        eval_guestrole=COLLEAGUE,
        **dd.babelkw(
            'name',
            de="ASD",  # (Allgemeiner Sozialdienst)
            nl="ASD",  # (Algemene Sociale Dienst)
            fr="SSG",  # (Service social général)
            en="General",  # (General Social Service)
        ))
    yield ASD

    DSBE = pcsw.CoachingType(
        id=isip.COACHINGTYPE_DSBE,
        does_gss=False,
        does_integ=True,
        eval_guestrole=COLLEAGUE,
        **dd.babelkw(
            'name',
            de="DSBE",  # (Dienst für Sozial-Berufliche Eingliederung)
            fr="SI",  # Service intégration
            en="Integ",  # Integration service
        ))
    yield DSBE

    DEBTS = pcsw.CoachingType(
        does_gss=False,
        does_integ=False,
        **dd.babelkw(
            'name',
            de="Schuldnerberatung",
            fr="Médiation de dettes",
            en="Debts mediation",
        ))
    yield DEBTS

    melanie = person(first_name="Mélanie", last_name="Mélard",
                     email=settings.SITE.demo_email,
                     city=eupen, country='BE', gender=dd.Genders.female,
                     language='fr')

    ## newcomers : Melanie does not work with newcomers because she is
    ## the boss. Hubert does live consultations (no appointments). And
    ## Alicia does only appointments but no life
    ## consultations. Caroline and Judith do both.
    yield melanie
    melanie = users.User(
        username="******", partner=melanie, profile='110',
        coaching_type=DSBE,
        newcomer_consultations=False, newcomer_appointments=False)
    yield melanie

    hubert = person(first_name=u"Hubert", last_name=u"Huppertz",
                    email=settings.SITE.demo_email,
                    city=kettenis, country='BE', gender=dd.Genders.male)
    yield hubert
    hubert = users.User(
        username="******", partner=hubert, profile='100',
        coaching_type=DSBE,
        newcomer_consultations=True, newcomer_appointments=False)
    yield hubert

    alicia = person(
        first_name=u"Alicia", last_name=u"Allmanns",
        email=settings.SITE.demo_email,
        city=kettenis, country='BE',
        # gender=dd.Genders.female,  # don't set gender
        language='fr')
    yield alicia
    alicia = users.User(
        username="******", partner=alicia, profile='100',
        coaching_type=DSBE,
        newcomer_consultations=True, newcomer_appointments=True)
    yield alicia

    theresia = person(first_name="Theresia", last_name="Thelen",
                      email=settings.SITE.demo_email,
                      city=eupen, country='BE', gender=dd.Genders.female)
    yield theresia
    theresia = users.User(username="******", partner=theresia, profile='210')
    yield theresia

    nicolas = users.User(username="******", profile='')
    yield nicolas

    # yield Authority(user=alicia, authorized=hubert)
    # yield Authority(user=alicia, authorized=melanie)
    # yield Authority(user=hubert, authorized=melanie)
    yield Authority(user=hubert, authorized=theresia)
    yield Authority(user=alicia, authorized=theresia)
    yield Authority(user=melanie, authorized=theresia)

    caroline = users.User(
        username="******", first_name="Caroline", last_name="Carnol",
        profile='200',
        coaching_type=ASD,
        newcomer_consultations=True, newcomer_appointments=True)
    yield caroline

    obj = person(first_name="Judith", last_name="Jousten",
                 email=settings.SITE.demo_email,
                 city=eupen, country='BE', gender=dd.Genders.female)
    yield obj

    judith = users.User(
        username="******", partner=obj, profile='400',
        coaching_type=ASD,
        newcomer_consultations=True, newcomer_appointments=True)
    yield judith

    yield users.User(
        username="******", first_name="Patrick",
        last_name="Paraneau", profile='910',
        email=settings.SITE.demo_email)

    # for obj in pcsw.CoachingType.objects.all():
    #     yield users.Team(**dd.babelkw('name', **field2kw(obj, 'name')))

    obj = cal.GuestRole(
        # email_template="Visitor.eml.html",
        **dd.babelkw(
            'name',
            de="Besucher",
            fr="Visiteur",
            en="Visitor",
            et="Külaline",
        ))
    yield obj
    settings.SITE.site_config.update(client_guestrole=obj)

    yield cal.GuestRole(**dd.babelkw('name',
                                     de=u"Vorsitzender",
                                     fr=u"Président",
                                     en=u"Chairman",
                                     et=u"Eesistuja",
                                 ))
    yield cal.GuestRole(**dd.babelkw('name',
                                     de=u"Schriftführer",
                                     fr=u"Greffier",
                                     en=u"Reporter",
                                     et=u"Sekretär",
                                 ))

    calendar = Instantiator('cal.EventType').build

    kw = dict(invite_client=False, is_appointment=False)
    kw.update(dd.str2kw('name', _("Consultations with client")))
    kw.update(dd.str2kw('event_label', _("Consultation")))
    # kw.update(dd.babelkw(
    #     'name',
    #     de="Visiten (ohne Verabredung)",
    #     fr="Consultations sans rendez-vous",
    #     en="Prompt consultation",
    #     et="Külaline",
    # ))
    obj = calendar(**kw)
    yield obj
    settings.SITE.site_config.update(prompt_calendar=obj)

    kw = dict(invite_client=True)
    kw.update(dd.str2kw("name", _("External meetings with client")))
    kw.update(dd.str2kw("event_label", _("External meeting")))
    yield calendar(**kw)

    kw = dict(invite_client=True)
    kw.update(dd.str2kw("name", _("Informational meetings")))
    kw.update(dd.str2kw("event_label", _("Informational meeting")))
    yield calendar(**kw)

    kw = dict(invite_client=False)
    kw.update(dd.str2kw("name", _("Internal meetings")))
    kw.update(dd.str2kw("event_label", _("Internal meeting")))
    yield calendar(**kw)
    # yield calendar(**dd.babelkw('name',
    #                             de=u"Versammlung intern",
    #                             fr=u"Réunions internes",
    #                             en=u"Internal meetings"))

    kw = dict(invite_client=False)
    kw.update(dd.str2kw("name", _("External meetings")))
    kw.update(dd.str2kw("event_label", _("External meeting")))
    yield calendar(**kw)
    # yield calendar(**dd.babelkw('name',
    #                             de=u"Versammlung extern",
    #                             fr=u"Réunions externes",
    #                             en=u"External meetings"))

    kw = dict(invite_client=False)
    kw.update(dd.str2kw("name", _("Private")))
    yield calendar(**kw)
    # yield calendar(**dd.babelkw('name',
    #                             de="Privat",
    #                             fr="Privé",
    #                             en="Private"))

    sector = Instantiator(cv.Sector).build
    for ln in SECTORS_LIST.splitlines():
        if ln:
            a = ln.split('|')
            if len(a) == 3:
                kw = dict(en=a[0], fr=a[1], de=a[2])
                yield sector(**dd.babelkw('name', **kw))

    horeca = cv.Sector.objects.get(pk=5)
    function = Instantiator(cv.Function, sector=horeca).build
    yield function(**dd.babelkw('name',
                             de=u"Kellner",
                             fr=u'Serveur',
                             en=u'Waiter',
                             ))
    yield function(**dd.babelkw('name',
                             de=u"Koch",
                             fr=u'Cuisinier',
                             en=u'Cook',
                             ))
    yield function(**dd.babelkw('name',
                             de=u"Küchenassistent",
                             fr=u'Aide Cuisinier',
                             en=u'Cook assistant',
                             ))
    yield function(**dd.babelkw('name',
                             de=u"Tellerwäscher",
                             fr=u'Plongeur',
                             en=u'Dishwasher',
                             ))

    contractType = Instantiator(jobs.ContractType, "ref",
                                exam_policy=3).build
    yield contractType('art60-7a',
                       **dd.babelkw('name',
                                 de=u"Sozialökonomie",
                                 fr=u'économie sociale',
                                 en=u'social economy',
                                 ))
    yield contractType('art60-7b',
                       **dd.babelkw('name',
                                 de=u"Sozialökonomie - majoré",
                                 fr=u'économie sociale - majoré',
                                 en=u'social economy - increased',
                                 ))
    yield contractType('art60-7c',
                       **dd.babelkw('name',
                                 de=u"mit Rückerstattung",
                                 fr=u'avec remboursement',
                                 en=u'social economy with refund',
                                 ))
    yield contractType('art60-7d',
                       **dd.babelkw('name',
                                 de=u"mit Rückerstattung Schule",
                                 fr=u'avec remboursement école',
                                 en=u'social economy school',
                                 ))
    yield contractType('art60-7e',
                       **dd.babelkw('name',
                                 de=u"Stadt Eupen",
                                 fr=u"ville d'Eupen",
                                 en=u'town',
                                 ))

    contractType = Instantiator(isip.ContractType, "ref",
                                exam_policy=1).build
    yield contractType("vsea", needs_study_type=True, **dd.babelkw(
        'name',
        de=u"VSE Ausbildung",
        fr=u"VSE Ausbildung",
        en=u"VSE Ausbildung",
    ))
    yield contractType("vseb", **dd.babelkw('name',
                                         de=u"VSE Arbeitssuche",
                                         fr=u"VSE Arbeitssuche",
                                         en=u"VSE Arbeitssuche",
                                         ))
    yield contractType("vsec", **dd.babelkw('name',
                                         de=u"VSE Lehre",
                                         fr=u"VSE Lehre",
                                         en=u"VSE Lehre",
                                         ))
    yield contractType("vsed",
                       needs_study_type=True,
                       **dd.babelkw('name',
                                 de=u"VSE Vollzeitstudium",
                                 fr=u"VSE Vollzeitstudium",
                                 en=u"VSE Vollzeitstudium",
                             ))
    yield contractType("vsee", **dd.babelkw('name',
                                         de=u"VSE Sprachkurs",
                                         fr=u"VSE Sprachkurs",
                                         en=u"VSE Sprachkurs",
                                         ))

    t = RoleType.objects.get(pk=4)  # It manager
    t.use_in_contracts = False
    t.save()

    #~ country = Instantiator('countries.Country',"isocode name").build
    #~ yield country('SUHH',"Soviet Union")
    #~ cpas = company(name=u"ÖSHZ Eupen",city=eupen,country=belgium)
    cpas = company(name=u"ÖSHZ Kettenis", city=kettenis, country=belgium)
    yield cpas
    bisa = company(name=u"BISA", city=eupen, country=belgium)
    yield bisa
    bisa_dir = role(company=bisa, person=annette, type=1)
    yield bisa_dir
    rcycle = company(name=u"R-Cycle Sperrgutsortierzentrum",
                     city=eupen, country=belgium)
    yield rcycle
    rcycle_dir = role(company=rcycle, person=andreas, type=1)
    yield rcycle_dir
    yield role(company=rcycle, person=erna, type=2)
    # IT manager : no contracts
    yield role(company=rcycle, person=ulrike, type=4)
    yield company(name=u"Die neue Alternative V.o.G.", city=eupen, country=belgium)
    proaktiv = company(name=u"Pro Aktiv V.o.G.", city=eupen, country=belgium)
    yield proaktiv
    proaktiv_dir = role(company=proaktiv, person=hans, type=1)
    # IT manager : no contracts
    yield role(company=proaktiv, person=ulrike, type=4)
    yield proaktiv_dir
    yield company(name=u"Werkstatt Cardijn V.o.G.", city=eupen, country=belgium)
    yield company(name=u"Behindertenstätten Eupen", city=eupen, country=belgium)
    yield company(name=u"Beschützende Werkstätte Eupen", city=eupen, country=belgium)

    kw = dd.str2kw('name', _("Health insurance"))
    cct = ClientContactType(**kw)
    yield cct
    kw = dict(client_contact_type=cct, country=belgium)
    #~ kw = dict(is_health_insurance=True,country=belgium)
    yield company(name="Alliance Nationale des Mutualités Chrétiennes", **kw)
    yield company(name="Mutualité Chrétienne de Verviers - Eupen", **kw)
    yield company(name="Union Nationale des Mutualités Neutres", **kw)
    yield company(name="Mutualia - Mutualité Neutre", **kw)
    yield company(name="Solidaris - Mutualité socialiste et syndicale de la province de Liège", **kw)

    fkw = dd.str2kw('name', _("Pharmacy"))  # Apotheke
    cct = rt.modules.pcsw.ClientContactType.objects.get(**fkw)
    kw = dict(client_contact_type=cct, country=belgium, city=eupen)
    yield company(
        name="Apotheke Reul",
        street='Klosterstraße', street_no=20, **kw)
    yield company(
        name="Apotheke Schunck", street='Bergstraße', street_no=59, **kw)
    yield company(
        name="Pharmacies Populaires de Verviers",
        street='Aachener Straße', street_no=258, **kw)
    yield company(
        name="Bosten-Bocken A", street='Haasstraße', street_no=6, **kw)

    kw = dd.str2kw('name', _("Advocate"))
    cct = ClientContactType(**kw)
    yield cct
    kw = dict(client_contact_type=cct, country=belgium, city=eupen)
    yield company(name=u"Brüll Christine", street=u'Schilsweg', street_no=4, **kw)
    yield company(name=u"Brocal Catherine", street=u'Neustraße', street_no=115, **kw)
    yield company(name=u"Bourseaux Alexandre", street=u'Aachener Straße', street_no=21, **kw)
    yield company(name=u"Baguette Stéphanie", street=u'Gospertstraße', street_no=24, **kw)

    # Bailiff = Gerichtsvollzieher = Huissier de justice
    kw = dd.str2kw('name', _("Bailiff"))
    if dd.is_installed('debts'):
        kw.update(is_bailiff=True)
    cct = ClientContactType(**kw)
    yield cct
    kw = dict(client_contact_type=cct, country=belgium, city=eupen)
    yield company(name="Demarteau Bernadette",
                  street='Aachener Straße', street_no=25, **kw)
    kw.update(city=stvith)
    yield company(name="Schmitz Marc", street='Rodter Straße',
                  street_no=43, street_box="B", **kw)

    # Inkasso-Unternehmen
    kw = dd.str2kw('name', _("Debt collecting company"))
    if dd.is_installed('debts'):
        kw.update(is_bailiff=True)
    cct = ClientContactType(**kw)
    yield cct
    kw = dict(client_contact_type=cct, country=belgium, city=eupen)
    yield company(name="Cashback sprl",
                  street='Vervierser Straße', street_no=1, **kw)
    yield company(name="Money Wizard AS",
                  street='Neustraße', street_no=1, **kw)

    # settings.SITE.site_config.debts_bailiff_type = cct
    # yield settings.SITE.site_config

    def person2client(p, **kw):
        c = mti.insert_child(p, Client)
        for k, v in kw.items():
            setattr(c, k, v)
        c.client_state = pcsw.ClientStates.coached
        c.save()
        return Client.objects.get(pk=p.pk)

    #~ luc = Person.objects.get(name__exact="Saffre Luc")
    #~ luc = person2client(luc,national_id = '680601 053-29')
    #~ luc.birth_place = 'Eupen'
    #~ luc.birth_date = '1968-06-01'
    #~ luc.birth_country = be
    #~ luc.full_clean()
    #~ luc.save()
    #~
    #~ ly = person(first_name="Ly",last_name="Rumma",
      #~ city=vigala,country='EE',
      #~ gender=dd.Genders.female)
    #~ yield ly
    #~ mari = person(first_name="Mari",last_name="Saffre",
      #~ city=vigala,country='EE',
      #~ gender=dd.Genders.female)
    #~ yield mari
    #~ iiris = person(first_name="Iiris",last_name="Saffre",
      #~ city=vigala,country='EE',
      #~ gender=dd.Genders.female)
    #~ yield iiris

    gerd = person(first_name="Gerd",
                  last_name="Gerkens", city=kettenis,
                  email=settings.SITE.demo_email,  # '*****@*****.**'
                  country='BE', gender=dd.Genders.male)
    yield gerd
    yield role(company=cpas, person=gerd, type=4)

    # see :blogentry:`20111007`
    tatjana = client(
        first_name=u"Tatjana", last_name=u"Kasennova",
        #~ first_name=u"Татьяна",last_name=u"Казеннова",
        city=kettenis, country='BE',
        #~ national_id='1237',
        birth_place="Moskau",  # birth_country='SUHH',
        client_state=pcsw.ClientStates.newcomer,
        #~ newcomer=True,
        gender=dd.Genders.female)
    yield tatjana

    michael = Person.objects.get(name__exact="Mießen Michael")
    jean = Person.objects.get(name__exact="Radermacher Jean")
    #~ yield cpas
    sc = settings.SITE.site_config
    sc.site_company = cpas
    sc.signer1 = michael
    sc.signer2 = jean
    yield sc
    yield role(company=cpas,
               person=michael,
               type=sc.signer1_function)
    yield role(company=cpas,
               person=jean,
               type=sc.signer2_function)

    bernard = Person.objects.get(name__exact="Bodard Bernard")

    kw = dd.str2kw('name', _("Employment office"))  # Arbeitsvermittler
    cct = ClientContactType(**kw)
    yield cct
    kw = dict(client_contact_type=cct, country=belgium, city=eupen)
    adg = company(name=u"Arbeitsamt der D.G.", **kw)
    adg.save()
    yield adg
    settings.SITE.site_config.job_office = adg
    yield settings.SITE.site_config
    adg_dir = role(company=adg, person=bernard, type=1)
    yield adg_dir

    kw = dd.str2kw('name', _("Physician"))  # Arzt
    if dd.is_installed('aids'):
        kw.update(can_refund=True)
    cct = ClientContactType(**kw)
    yield cct
    kw = dict(client_contact_type=cct, country=belgium, city=eupen)
    yield person(first_name="Waltraud", last_name="Waldmann", **kw)

    kw = dd.str2kw('name', _("Family doctor"))  # Hausarzt
    if dd.is_installed('aids'):
        kw.update(can_refund=True)
    cct = ClientContactType(**kw)
    yield cct
    kw = dict(client_contact_type=cct, country=belgium, city=eupen)
    yield person(first_name="Werner", last_name="Wehnicht", **kw)

    kw = dd.str2kw('name', _("Dentist"))
    if dd.is_installed('aids'):
        kw.update(can_refund=True)
    cct = ClientContactType(**kw)
    yield cct
    kw = dict(client_contact_type=cct, country=belgium,
              city=eupen, title="Dr.")
    yield person(first_name="Carmen", last_name="Castou", **kw)
    yield person(first_name="Walter", last_name="Waldmann", **kw)

    kw = dd.str2kw('name', _("Pediatrician"))
    if dd.is_installed('aids'):
        kw.update(can_refund=True)
    cct = ClientContactType(**kw)
    yield cct
    kw = dict(client_contact_type=cct, country=belgium,
              city=eupen, title="Dr.")
    yield person(first_name="Killian", last_name="Kimmel", **kw)

    # kw = dd.str2kw('name', _("Landlord"))  # Vermieter
    # if dd.is_installed('aids'):
    #     kw.update(can_refund=True)
    # cct = ClientContactType(**kw)
    # yield cct
    # kw = dict(client_contact_type=cct, country=belgium, city=eupen)
    # yield person(first_name="Vera", last_name="Veltz", **kw)
    # yield person(first_name="Vanessa", last_name="Veithen", **kw)

    #~ from django.core.exceptions import ValidationError
    # ~ # a circular reference: bernard is contact for company adg and also has himself as `job_office_contact`
    #~ try:
      #~ bernard.job_office_contact = adg_dir
      #~ bernard.clean()
      #~ bernard.save()
    #~ except ValidationError:
        #~ pass
    #~ else:
        #~ raise Exception("Expected ValidationError")

    DIRECTORS = (annette, hans, andreas, bernard)

    #~ USERS = Cycler(root,melanie,hubert,alicia)
    AGENTS = Cycler(melanie, hubert, alicia, judith)
    COACHINGTYPES = Cycler(pcsw.CoachingType.objects.filter(
        does_gss=False, does_integ=False))

    #~ CLIENTS = Cycler(andreas,annette,hans,ulrike,erna,tatjana)
    count = 0
    #~ for person in Person.objects.filter(gender__isnull=False):
    for person in Person.objects.exclude(gender=''):
        if not person.birth_date:  # not those from humanlinks
            if users.User.objects.filter(partner=person).count() == 0:
                if contacts.Role.objects.filter(person=person).count() == 0:
                    birth_date = settings.SITE.demo_date(-170 * count - 16 * 365)
                    national_id = generate_ssin(birth_date, person.gender)

                    client = person2client(person,
                                           national_id=national_id,
                                           birth_date=birth_date)
                    # youngest client is 16; 170 days between each client

                    count += 1
                    if count % 2:
                        client.client_state = pcsw.ClientStates.coached
                    elif count % 5:
                        client.client_state = pcsw.ClientStates.newcomer
                    else:
                        client.client_state = pcsw.ClientStates.former

                    # Dorothée is three times in our database
                    if client.first_name == "Dorothée":
                        client.national_id = None
                        client.birth_date = ''

                    client.full_clean()
                    client.save()

    #~ CLIENTS = Cycler(Client.objects.filter(is_active=True,newcomer=False))
    CLIENTS = Cycler(
        Client.objects.filter(client_state=pcsw.ClientStates.coached))

    #~ oshz = Company.objects.get(name=u"ÖSHZ Eupen")

    #~ project = Instantiator('projects.Project').build
    #~ note = Instantiator('notes.Note').build
    langk = Instantiator('cv.LanguageKnowledge').build

    #~ prj = project(name="Testprojekt",company=oshz)
    #~ yield prj
    #~ yield note(user=user,project=prj,date=i2d(20091006),subject="Programmierung",company=oshz)

    #~ prj = project(name="Testprojekt",company=oshz)
    #~ yield prj
    #~ yield note(user=user,project=prj,date=i2d(20091007),subject="Anschauen",company=oshz)

    Note = resolve_model('notes.Note')
    USERS = Cycler(users.User.objects.all())
    SUBJECTS = Cycler(u"""
    Erstgespräch
    Versammlung beim AG
    Zwischenbericht
    Krisensitzung
    """.splitlines())

    for i in range(10):
        yield Note(user=USERS.pop(),
                   date=settings.SITE.demo_date(days=i),
                   subject=SUBJECTS.pop())

    schule = StudyType.objects.get(pk=1)
    # uni = StudyType.objects.get(pk=4)
    abi = u"Abitur"
    study = Instantiator('cv.Study').build

    gerd = CLIENTS.pop()
    luc = CLIENTS.pop()
    ly = CLIENTS.pop()
    mari = CLIENTS.pop()
    iiris = CLIENTS.pop()

    luc.card_number = '591413288107'
    luc.card_valid_from = i2d(20110819)
    luc.card_valid_until = i2d(20160819)
    luc.card_issuer = "Eupen"
    luc.card_type = BeIdCardTypes.belgian_citizen
    luc.save()
    luc.make_demo_picture()

    gerd.card_number = '123456789012'
    gerd.card_valid_from = i2d(20120819)
    gerd.card_valid_until = i2d(20130818)
    gerd.card_issuer = "Eupen"
    gerd.card_type = BeIdCardTypes.foreigner_c
    gerd.save()
    gerd.make_demo_picture()

    yield study(person=luc, type=schule, content=abi,
                start_date='19740901', end_date='19860630')
    yield study(person=gerd, type=schule, content=abi,
                start_date='19740901', end_date='19860630')

    yield langk(person=luc, language='ger', written='4', spoken='4')
    yield langk(person=gerd, language='ger', written='4', spoken='4')
    yield langk(person=mari, language='ger', written='2', spoken='4')
    yield langk(person=iiris, language='ger', written='0', spoken='4')
    yield langk(person=ly, language='ger', written='2', spoken='1')

    yield langk(person=luc, language='fre', written='4', spoken='3')
    yield langk(person=gerd, language='fre', written='4', spoken='3')

    yield langk(person=luc, language='eng', written='4', spoken='3')
    yield langk(person=gerd, language='eng', written='4', spoken='3')
    yield langk(person=ly, language='eng', written='3', spoken='3')

    yield langk(person=gerd, language='dut', written='3', spoken='3')

    yield langk(person=luc, language='est', written='3', spoken='3')
    yield langk(person=ly, language='est', written='4', spoken='4')
    yield langk(person=mari, language='est', written='3', spoken='4')
    yield langk(person=iiris, language='est', written='0', spoken='3')

    jobtype = Instantiator(jobs.JobType, 'name').build
    art607 = jobtype(u'Sozialwirtschaft = "majorés"')
    yield art607
    yield jobtype(u'Intern')
    yield jobtype(u'Extern (Öffentl. VoE mit Kostenrückerstattung)')
    yield jobtype(u'Extern (Privat Kostenrückerstattung)')
    #~ yield jobtype(u'VSE')
    yield jobtype(u'Sonstige')

    rcycle = mti.insert_child(rcycle, jobs.JobProvider)
    yield rcycle
    bisa = mti.insert_child(bisa, jobs.JobProvider)
    yield bisa
    proaktiv = mti.insert_child(proaktiv, jobs.JobProvider)
    yield proaktiv

    # jobs (Art.60-7)
    CSTATES = Cycler(jobs.CandidatureStates.objects())
    JOBS_CONTRACT_TYPES = Cycler(jobs.ContractType.objects.all())
    JTYPES = Cycler(jobs.JobType.objects.all())

    PROVIDERS = Cycler(jobs.JobProvider.objects.all())
    SECTORS = Cycler(cv.Sector.objects.all())
    FUNCTIONS = Cycler(cv.Function.objects.all())
    REMARKS = Cycler(
        _("A very hard job."),
        '',
        _("No supervisor. Only for independent people."), '', '', '')

    for i in range(8):
        f = FUNCTIONS.pop()
        yield jobs.Job(provider=PROVIDERS.pop(),
                       type=JTYPES.pop(),
                       contract_type=JOBS_CONTRACT_TYPES.pop(),
                       name=unicode(f),
                       remark=REMARKS.pop(),
                       sector=SECTORS.pop(), function=f)

    JOBS = Cycler(jobs.Job.objects.all())

    for i in range(40):
        yield jobs.Candidature(job=JOBS.pop(),
                               person=CLIENTS.pop(),
                               state=CSTATES.pop(),
                               date_submitted=settings.SITE.demo_date(-40 + i))

    # reset SECTORS and FUNCTIONS
    SECTORS = Cycler(cv.Sector.objects.all())
    FUNCTIONS = Cycler(cv.Function.objects.all())

    obj = jobs.Offer(
        name="Übersetzer DE-FR (m/w)",
        remark="""\
Wir sind auf der Suche nach einem Deutsch-Französich Übersetzer 
(M/F) um einen Selbständigenr zu Geschäftsessen und kommerziellen 
Termine zu begleiten. Sie übernehmen die Übersetzung von Gespräche 
während kommerziellen Kontakte mit deutschen Kunden.
Es ist spontane und pünktliche Aufträge, den ganzen Tag, in
Eupen und/oder Deutschland.
Regelmäßigkeit: 1-2 Mal pro Monat, je nach Bedarf.
Flexibilität: die Termine sind je nach Kandidat anpassbar.""",
        provider=PROVIDERS.pop(),
        selection_from=settings.SITE.demo_date(-120),
        selection_until=settings.SITE.demo_date(-20),
        start_date=settings.SITE.demo_date(10),
        sector=SECTORS.pop(),
        function=FUNCTIONS.pop())
    yield obj

    # reset SECTORS and FUNCTIONS
    SECTORS = Cycler(cv.Sector.objects.all())
    FUNCTIONS = Cycler(cv.Function.objects.all())

    for i in range(30):
        yield jobs.Candidature(
            person=CLIENTS.pop(),
            state=CSTATES.pop(),
            date_submitted=settings.SITE.demo_date(-20 + i * 2),
            sector=SECTORS.pop(),
            function=FUNCTIONS.pop(),
        )

    COUNTRIES = Cycler(countries.Country.objects.all())
    COMPANIES = Cycler(Company.objects.all())

    # reset SECTORS and FUNCTIONS
    SECTORS = Cycler(cv.Sector.objects.all())
    FUNCTIONS = Cycler(cv.Function.objects.all())
    DURATIONS = Cycler([1, 2, 3, 6, 6, 9, 12, 12, 24, 24])  # months
    STATES = Cycler(cv.EducationEntryStates.items())

    for i in range(30):
        start_date = settings.SITE.demo_date(-1200 + i * 2)
        d = DURATIONS.pop()
        end_date = DurationUnits.months.add_duration(start_date, d)
        yield cv.Experience(
            person=CLIENTS.pop(),
            company=COMPANIES.pop(),
            country=COUNTRIES.pop(),
            start_date=start_date,
            end_date=end_date,
            sector=SECTORS.pop(),
            function=FUNCTIONS.pop(),
        )

    TRAINING_TYPES = Cycler(cv.StudyType.objects.filter(is_training=True))
    for i in range(20):
        start_date = settings.SITE.demo_date(-1200 + i * 2)
        d = DURATIONS.pop()
        end_date = DurationUnits.months.add_duration(start_date, d)
        yield cv.Training(
            person=CLIENTS.pop(),
            type=TRAINING_TYPES.pop(),
            school=SCHOOLS.pop(),
            country=COUNTRIES.pop(),
            start_date=start_date,
            end_date=end_date,
            sector=SECTORS.pop(),
            function=FUNCTIONS.pop(),
            state=STATES.pop(),
        )

    STUDY_TYPES = Cycler(cv.StudyType.objects.filter(is_study=True))
    EDULEVELS = Cycler(cv.EducationLevel.objects.all())
    for i in range(20):
        start_date = settings.SITE.demo_date(-1200 + i * 2)
        d = DURATIONS.pop()
        end_date = DurationUnits.months.add_duration(start_date, d)
        yield cv.Study(
            person=CLIENTS.pop(),
            type=STUDY_TYPES.pop(),
            school=SCHOOLS.pop(),
            country=COUNTRIES.pop(),
            start_date=start_date,
            end_date=end_date,
            state=STATES.pop(),
            education_level=EDULEVELS.pop(),
        )


    #~ baker = Properties.objects.get(pk=1)
    #~ baker.save()
    #~ yield baker

    """
    Distribute properties to persons. The distribution should be
    "randomly", but independant of site's language setting.
    """

    for i, p in enumerate(Client.objects.all()):
        if i % 2:
            country = belgium
        else:
            country = COUNTRIES.pop()
        p.birth_country_id = country
        p.nationality_id = country

        if i % 3:
            p.languageknowledge_set.create(
                language_id='eng', written='3', spoken='3')
        elif i % 5:
            p.languageknowledge_set.create(
                language_id='eng', written='4', spoken='4')
        if p.zip_code == '4700':
            p.languageknowledge_set.create(language_id='ger', native=True)
            if i % 2:
                p.languageknowledge_set.create(
                    language_id='fre', written='2', spoken='2')
            p.is_cpas = True
            #~ p.is_active = True
            #~ p.client_state = pcsw.ClientStates.coached
            #~ p.native_language_id = 'ger'
        p.save()

    for short_code, isocode in (
        ('B', 'BE'),
        ('D', 'DE'),
        ('F', 'FR'),
    ):
        c = countries.Country.objects.get(pk=isocode)
        c.short_code = short_code
        c.save()

    i = pcsw.Client.objects.order_by('name').__iter__()
    p = i.next()
    offset = 0
    for f in cv.Function.objects.all():
        yield jobs.Candidature(person=p, function=f, sector=f.sector,
                               #~ date_submitted=i2d(20111019))
                               date_submitted=settings.SITE.demo_date(offset))
        p = i.next()
        offset -= 1

    PERSONGROUPS = Cycler(pcsw.PersonGroup.objects.all())
    AGENTS_SCATTERED = Cycler(
        alicia, hubert, melanie, caroline, hubert, melanie, hubert, melanie)
    ENDINGS = Cycler(pcsw.CoachingEnding.objects.all())
    for client in pcsw.Client.objects.all():
        story = COACHING_STORIES.get(client.client_state)
        if story:
            if not client.group:
                client.group = PERSONGROUPS.pop()
                PERSONGROUPS.pop()
                # ~ for i in range(5-client.group.id): PERSONGROUPS.pop() #
                client.save()
            periods = story.pop()
            type = COACHINGTYPES.pop()
            for a, b, primary, ct in periods:
                if ct == CT_OTHER:
                    type = COACHINGTYPES.pop()
                elif ct == CT_GSS:
                    type = ASD
                elif ct == CT_INTEG:
                    type = DSBE
                kw = dict(client=client,
                          user=AGENTS_SCATTERED.pop(),
                          type=type,
                          primary=primary)
                if a is not None:
                    kw.update(start_date=settings.SITE.demo_date(a))
                if b is not None:
                    kw.update(end_date=settings.SITE.demo_date(b))
                    kw.update(ending=ENDINGS.pop())
                yield pcsw.Coaching(**kw)

    # every 10th partner is obsolete

    for i, p in enumerate(contacts.Partner.objects.all()):
        if i % 10 == 0:
            p.is_obsolete = True
            p.save()

    # The reception desk opens at 8am. 20 visitors have checked in,
    # half of which

    RECEPTION_CLIENTS = Cycler(reception.Clients.request(user=theresia))
    REASONS = Cycler(_("Urgent problem"), '', _("Complain"), _("Information"))
    today = settings.SITE.demo_date()
    now = datetime.datetime(today.year, today.month, today.day, 8, 0)
    for i in range(1, 20):
        obj = RECEPTION_CLIENTS.pop()
        now += datetime.timedelta(minutes=3 * i, seconds=3 * i)
        obj = reception.create_prompt_event(
            obj, obj,
            AGENTS.pop(),
            REASONS.pop(),
            settings.SITE.site_config.client_guestrole,
            now)
        yield obj

    # TODO: the following possibly causes more than one busy guest per
    # agent.
    qs = cal.Guest.objects.filter(waiting_since__isnull=False)
    busy_agents = set()
    for i, obj in enumerate(qs):
        busy_since = obj.waiting_since + \
            datetime.timedelta(minutes=2 * i, seconds=2 * i)
        if i % 3 == 0:
            obj.gone_since = busy_since + \
                datetime.timedelta(minutes=2 * i, seconds=3 * i)
            obj.state = cal.GuestStates.gone
        elif not obj.event.user in busy_agents:
            obj.busy_since = busy_since
            obj.state = cal.GuestStates.busy
            busy_agents.add(obj.event.user)

        yield obj

    Calendar = dd.resolve_model('cal.Calendar')
    COLORS = Cycler(Calendar.COLOR_CHOICES)

    for u in settings.SITE.user_model.objects.exclude(profile=None):
        obj = Calendar(name=u.username, color=COLORS.pop())
        yield obj
        u.calendar = obj
        u.save()

    # create a primary ClientAddress for each Client.
    # no longer needed. done by plausibility.fixtures.demo2
    # for obj in settings.SITE.modules.contacts.Partner.objects.all():
    #     obj.repairdata()

    # have partners speak different languages
    # most partners speak first language
    if len(settings.SITE.languages):
        ld = []  # language distribution
        ld = [settings.SITE.languages[0].django_code] * 10
        if len(settings.SITE.languages) > 1:
            ld += [settings.SITE.languages[1].django_code] * 3
            if len(settings.SITE.languages) > 2:
                ld += [settings.SITE.languages[2].django_code]
        LANGS = Cycler(ld)
        for obj in settings.SITE.modules.contacts.Partner.objects.all():
            obj.language = LANGS.pop()
            obj.save()
Esempio n. 22
0
    def objects(self):

        PlaceTypes = rt.models.countries.PlaceTypes
        ProductCat = rt.models.products.ProductCat

        # yield PupilType(ref="M", name="Liige")
        # yield PupilType(ref="H", name="Abistaja")
        # yield PupilType(ref="L", name="Muu")

        yield TeacherType(ref="IN", **dd.str2kw('name', _("Independant")))
        yield TeacherType(ref="VL", **dd.str2kw('name', _("Voluntary")))
        yield TeacherType(ref="ETC", **dd.str2kw('name', _("Other")))

        company = Instantiator('contacts.Company', 'name city:name').build

        tallinn = PlaceTypes.town.find("Tallinn")
        tartu = PlaceTypes.town.find("Tartu")
        rapla = PlaceTypes.town.find("Rapla")
        parnu = PlaceTypes.town.find("Pärnu")

        we = company("Juku õpib MTÜ", tallinn,
                     street="Tartu mnt", street_no=2)
        yield we
        settings.SITE.site_config.site_company = we
        yield settings.SITE.site_config

        # productcat = Instantiator('products.ProductCat').build

        course_fees = ProductCat(**dd.str2kw('name', _("Participation fees")))
        yield course_fees

        trips = ProductCat(**dd.str2kw('name', _("Trips")))
        # et="Väljasõidud", de="Ausflüge", fr="Excursions"))
        yield trips

        kw = dd.str2kw('name', _("Journeys"))
        self.journeys_cat = ProductCat(**kw)
        yield self.journeys_cat

        self.journey_fee = Product(cat=self.journeys_cat, **kw)
        yield self.journey_fee

        rent = ProductCat(**dd.str2kw('name', _("Room renting")))
        # et="Ruumiüür", de="Raummiete", fr="Loyer"))
        yield rent
        # other = ProductCat(**dd.str2kw('name', _("Other")))
        # et="Muud", de="Sonstige", fr="Autres"))
        # yield other

        product = Instantiator(
            'products.Product', "sales_price cat name").build
        yield product("20", course_fees, "20€")
        yield product("50", course_fees, "50€")
        yield product("80", course_fees, "80€")

        rent20 = product("20", rent, "Spiegelraum Eupen")
        yield rent20
        rent10 = product(
            "10", rent, **dd.str2kw('name', _("Rent per meeting")))
        yield rent10

        self.PRICES = Cycler(Product.objects.filter(cat=course_fees))

        event_type = Instantiator('cal.EventType').build
        kw = dd.str2kw('name', _("Courses"))
        kw.update(dd.str2kw('event_label', _("Hour")))
        self.kurse = event_type(**kw)
        yield self.kurse
        settings.SITE.site_config.default_event_type = self.kurse
        yield settings.SITE.site_config

        self.seminare = event_type(**dd.str2kw('name', _("Seminars")))
        yield self.seminare

        yield event_type(**dd.str2kw('name', _("Excursions")))
        yield event_type(**dd.str2kw('name', _("Hikes")))
        yield event_type(**dd.str2kw('name', _("Meetings")))

        yield event_type(
            email_template='Team.eml.html',
            **dd.str2kw('name', _("Team Meetings")))

        company = Instantiator('contacts.Company', 'name city:name').build
        eupen = company("Rüütli õpekeskus", tallinn,
                        street="Rüütli", street_no=39, street_box="/B2")
        yield eupen
        bbach = company("Õpekeskus", tallinn)
        yield bbach
        kelmis = company("Ülikooli", tartu)
        yield kelmis
        stvith = company("Spordi- ja vabaajakeskus", rapla)
        yield stvith

        self.ext1 = company("AA Neudorf", tartu)
        yield self.ext1
        self.ext2 = company("Nisperter Schützenverein", parnu)
        yield self.ext2

        room = Instantiator('cal.Room').build
        kw = dict(company=eupen)
        kw.update(dd.str2kw('name', _("Mirrored room")))
        kw.update(fee=rent20)
        self.spiegel = room(**kw)
        yield self.spiegel

        kw.update(dd.str2kw('name', _("Computer room")))
        kw.update(fee=rent10)
        self.pc_eupen = room(**kw)
        yield self.pc_eupen

        kw = dict(company=bbach)
        kw.update(dd.str2kw('name', _("Conferences room")))
        self.konf = room(**kw)
        yield self.konf

        kw.update(dd.str2kw('name', _("Computer room")))
        self.pc_bbach = room(**kw)
        yield self.pc_bbach

        kw = dict(company=kelmis)
        kw.update(dd.str2kw('name', _("Computer room")))
        self.pc_kelmis = room(**kw)
        yield self.pc_kelmis

        kw = dict(company=stvith)
        kw.update(dd.str2kw('name', _("Computer room")))
        self.pc_stvith = room(**kw)
        yield self.pc_stvith

        COLORS = Cycler(Calendar.COLOR_CHOICES)

        for u in Room.objects.all():
            obj = Calendar(name=str(u), color=COLORS.pop())
            yield obj
            #~ logger.info("20131018 %s", obj)
            u.calendar = obj
            u.save()
Esempio n. 23
0
    def objects(self):

        yield super(Loader2, self).objects()

        topic = Instantiator('courses.Topic').build
        line = Instantiator('courses.Line', 'topic event_type fee').build
        course = Instantiator(
            'courses.Course', 'line room start_time end_time').build
        booking = Instantiator(
            'rooms.Booking', 'room start_time end_time').build

        TEACHERS = Cycler(Teacher.objects.all())
        COMPANIES = Cycler(Company.objects.all())
        USERS = Cycler(settings.SITE.user_model.objects.all())

        def add_course(*args, **kw):
            kw.update(user=USERS.pop())
            kw.update(teacher=TEACHERS.pop())
            #~ kw.update(price=PRICES.pop())
            return course(*args, **kw)

        Product = rt.models.products.Product
        ProductCat = rt.models.products.ProductCat

        journey_options = ProductCat(**dd.str2kw(
            'name', _("Hotel options")))
        yield journey_options
        option = Instantiator(Product, cat=journey_options).build
        yield option(**dd.str2kw('name', _("Single room")))
        yield option(**dd.str2kw('name', _("Double room")))
        yield option(**dd.str2kw('name', _("Triple room")))
        # yield option(**dd.str2kw('name', _("Shower")))
        # yield option(**dd.str2kw('name', _("Night club")))

        # trip_options = ProductCat(**dd.str2kw('name', _("Trip options")))
        # yield trip_options
        # option = Instantiator(Product, cat=trip_options).build
        # yield option(name="Eupen Oberstadt")
        # yield option(name="Eupen Unterstadt")
        # yield option(name="Raeren")
        # yield option(name="Kelmis")
        # yield option(name="Büllingen")

        journey = Instantiator(
            'courses.Course', 'line name start_date end_date').build

        def add_journey(*args, **kw):
            kw.update(user=USERS.pop())
            kw.update(teacher=TEACHERS.pop())
            return journey(*args, **kw)

        self.journeys_topic = topic(**dd.str2kw('name', _("Journeys")))
        yield self.journeys_topic
        europe = line(self.journeys_topic, None, self.journey_fee,
                      options_cat=journey_options,
                      **dd.str2kw('name', _("Europe")))

        yield europe
        yield add_journey(europe, "Griechenland 2014",
                          i2d(20140814), i2d(20140820))
        yield add_journey(europe, "London 2014",
                          i2d(20140714), i2d(20140720))

        comp = topic(name="Computer")
        yield comp
        sport = topic(name="Sport")
        yield sport
        medit = topic(name="Meditation")
        yield medit
        externe = topic(name="Externe")
        yield externe

        obj = line(comp, self.kurse, self.PRICES.pop(),
                   ref="comp",
                   **dd.str2kw('name', _("First Steps")))
        yield obj
        kw = dict(max_events=8)
        kw.update(max_places=20)
        kw.update(start_date=demo_date(-30))
        kw.update(state=courses.CourseStates.active)
        kw.update(every=1)
        kw.update(every_unit=cal.Recurrencies.weekly)

        yield add_course(obj, self.pc_bbach, "13:30", "15:00",
                         monday=True, **kw)
        yield add_course(obj, self.pc_eupen, "17:30", "19:00",
                         wednesday=True, **kw)
        yield add_course(obj, self.pc_kelmis, "13:30", "15:00",
                         friday=True, **kw)

        desc = """
    Behandelte Themengebiete:

    - Grundlagen, Voraussetzungen
    - Arbeiten im WWW unter Verwendung eines Browsers
    - Navigieren im WWW
    - Links in die Linkleiste legen
    - aus Webseiten heraus drucken
    - Favoriten bzw. Lesezeichen verwenden
    - Aufgabe und Funktionsweise von Suchmaschinen
    - Elektronische Post: E-Mails verfassen, senden, empfangen, beantworten
    - E-Mails mit Anlagen
    - E-mail Sicherheit
    - Tipps und Tricks
    """
        obj = line(
            comp, self.kurse, self.PRICES.pop(),
            ref="WWW",
            description=desc, **dd.str2kw(
                'name', _("Internet for beginners")))
        yield obj
        kw = dict(max_events=8)
        kw.update(start_date=demo_date(10))
        kw.update(state=courses.CourseStates.active)
        yield add_course(obj, self.pc_bbach, "13:30", "15:00",
                         monday=True, **kw)
        yield add_course(obj, self.pc_eupen, "17:30", "19:00",
                         wednesday=True, **kw)
        yield add_course(obj, self.pc_kelmis, "13:30", "15:00",
                         friday=True, **kw)

        obj = line(sport, self.kurse, self.PRICES.pop(),
                   **dd.str2kw('name', _("Belly dancing")))
        yield obj
        kw = dict(max_events=8)
        kw.update(max_places=10)
        kw.update(start_date=demo_date(20))
        kw.update(state=CourseStates.active)
        yield add_course(obj, self.spiegel, "19:00", "20:00",
                         wednesday=True, **kw)

        obj = line(sport, self.kurse, self.PRICES.pop(),
                   **dd.str2kw('name', _("Functional gymnastics")))
        yield obj
        kw = dict(max_events=10, state=CourseStates.active)
        kw.update(start_date=demo_date(-10))
        yield add_course(obj, self.spiegel, "11:00", "12:00", monday=True, **kw)
        yield add_course(obj, self.spiegel, "13:30", "14:30", monday=True, **kw)

        obj = line(sport, self.kurse, self.PRICES.pop(),
                   **dd.str2kw('name', _("Swimming")))
        yield obj
        kw = dict(max_events=10, state=CourseStates.active)
        kw.update(start_date=demo_date(-100))
        yield add_course(obj, self.spiegel, "11:00", "12:00", monday=True, **kw)
        yield add_course(obj, self.spiegel, "13:30", "14:30", monday=True, **kw)
        yield add_course(obj, self.pc_stvith, "11:00", "12:00", tuesday=True, **kw)
        yield add_course(obj, self.pc_stvith, "13:30", "14:30", tuesday=True, **kw)
        yield add_course(obj, self.pc_kelmis, "11:00", "12:00", thursday=True, **kw)
        yield add_course(obj, self.pc_kelmis, "13:30", "14:30", thursday=True, **kw)

        obj = line(sport, self.kurse, self.PRICES.pop(),
                   **dd.str2kw('name', "Self-defence"))
        yield obj
        kw = dict(max_events=6)
        kw.update(max_places=12)
        kw.update(start_date=demo_date(-80))
        kw.update(state=CourseStates.active)
        yield add_course(obj, self.spiegel, "18:00", "19:00", friday=True, **kw)
        yield add_course(obj, self.spiegel, "19:00", "20:00", friday=True, **kw)

        obj = line(medit, self.kurse, self.PRICES.pop(),
                   ref="GLQ",
                   name="GuoLin-Qigong")
        yield obj
        kw = dict(max_events=10)
        kw.update(start_date=demo_date(-10))
        kw.update(state=CourseStates.active)
        yield add_course(obj, self.spiegel, "18:00", "19:30",
                         monday=True, **kw)
        yield add_course(obj, self.spiegel, "19:00", "20:30",
                         friday=True, **kw)

        obj = line(medit, self.kurse, self.PRICES.pop(),
                   ref="MED",
                   **dd.str2kw('name', _("Finding your inner peace")))
        yield obj
        kw = dict(max_events=10)
        kw.update(max_places=30)
        kw.update(start_date=demo_date(-10))
        kw.update(state=CourseStates.active)
        yield add_course(obj, self.konf, "18:00", "19:30", monday=True, **kw)
        yield add_course(obj, self.konf, "19:00", "20:30", friday=True, **kw)

        obj = line(medit, self.kurse, self.PRICES.pop(), name="Yoga")
        yield obj
        kw = dict(max_events=10)
        kw.update(start_date=demo_date(60))
        kw.update(state=CourseStates.active)
        yield add_course(obj, self.konf, "18:00", "19:30", monday=True, **kw)
        yield add_course(obj, self.konf, "19:00", "20:30", friday=True, **kw)

        EXTS = Cycler(self.ext1, self.ext2)

        def add_booking(*args, **kw):
            kw.update(user=USERS.pop())
            kw.update(event_type=self.seminare)
            #~ kw.update(price=PRICES.pop())
            #~ kw.update(tariff=PRICES.pop())
            #~ kw.update(calendar=self.kurse)
            kw.update(every=1)
            kw.update(company=EXTS.pop())
            return booking(*args, **kw)

        #~ obj = line(externe,self.kurse,PRICES.pop(),**dd.babelkw('name',
            #~ de="Raumbuchung",en="Room booking"))
        #~ yield obj
        kw = dict(max_events=10)
        kw.update(every_unit=cal.Recurrencies.weekly)
        kw.update(start_date=demo_date(60))
        kw.update(state=BookingStates.registered)
        kw.update(company=COMPANIES.pop())
        yield add_booking(self.konf, "20:00", "22:00", tuesday=True, **kw)
        kw.update(company=COMPANIES.pop())
        yield add_booking(self.konf, "20:00", "22:00", thursday=True, **kw)

        kw = dict(max_events=1)
        kw.update(every_unit=cal.Recurrencies.once)
        kw.update(company=COMPANIES.pop())
        kw.update(every_unit=cal.Recurrencies.once)
        yield add_booking(self.konf, "10:00", "14:00", **kw)

        PUPILS = Cycler(Pupil.objects.all())
        #~ print 20130712, Pupil.objects.all()
        COURSES = Cycler(Course.objects.filter(line__fee__isnull=False))
        STATES = Cycler(EnrolmentStates.objects())

        for i in range(100):
            kw = dict(
                user=USERS.pop(), course=COURSES.pop(),
                pupil=PUPILS.pop())
            kw.update(request_date=demo_date(-i))
            kw.update(state=STATES.pop())
            #~ print 20130712, kw
            yield Enrolment(**kw)

        #~ ses = settings.SITE.login('rolf')
        ses = settings.SITE.login()

        for model in (Course, Booking):
            for obj in model.objects.all():
                rc = ses.run(obj.do_update_events)
                if not rc.get('success', False):
                    raise Exception("update_reminders on %s returned %s" %
                                    (obj, rc))
Esempio n. 24
0
def objects():

    add = Instantiator('cal.Priority', 'ref').build
    yield add(
        '1',
        **dd.babel_values('name',
                          en=u"very urgent",
                          de=u"sehr dringend",
                          fr=u"très urgent",
                          et=u"väga kiire"))
    yield add(
        '3',
        **dd.babel_values('name',
                          en=u"urgent",
                          de=u"dringend",
                          fr=u"urgent",
                          et="kiire"))
    yield add(
        '5',
        **dd.babel_values('name',
                          en=u"normal",
                          de=u"normal",
                          fr=u"normal",
                          et="keskmine"))
    yield add(
        '9',
        **dd.babel_values('name',
                          en=u"not urgent",
                          de=u"nicht dringend",
                          fr=u"pas urgent",
                          et="mitte kiire"))

    calendar = Instantiator('cal.Calendar').build
    general = calendar(**dd.str2kw('name', _("General")))
    # de="Allgemein",
    # fr="Général",
    yield general
    settings.SITE.site_config.site_calendar = general
    yield settings.SITE.site_config

    event_type = Instantiator('cal.EventType').build
    holidays = event_type(is_appointment=False,
                          all_rooms=True,
                          **dd.str2kw('name', _("Holidays")))
    yield holidays
    yield event_type(**dd.str2kw('name', _("Meeting")))

    RecurrentEvent = dd.resolve_model('cal.RecurrentEvent')
    add = Instantiator(RecurrentEvent, event_type=holidays).build

    def holiday(month, day, en, de, fr, et=None):
        if et is None:
            et = en
        return add(every_unit=cal.Recurrencies.yearly,
                   monday=True,
                   tuesday=True,
                   wednesday=True,
                   thursday=True,
                   friday=True,
                   saturday=True,
                   sunday=True,
                   every=1,
                   start_date=datetime.date(year=cal.DEMO_START_YEAR,
                                            month=month,
                                            day=day),
                   **dd.babelkw('name', en=en, de=de, fr=fr, et=et))

    yield holiday(1, 1, "New Year's Day", "Neujahr", "Jour de l'an",
                  "Uusaasta")
    yield holiday(5, 1, "International Workers' Day", "Tag der Arbeit",
                  "Premier Mai", "kevadpüha")
    yield holiday(7, 21, "National Day", "Nationalfeiertag", "Fête nationale",
                  "Belgia riigipüha")
    yield holiday(8, 15, "Assumption of Mary", "Mariä Himmelfahrt",
                  "Assomption de Marie")
    yield holiday(10, 31, "All Souls' Day", "Allerseelen",
                  "Commémoration des fidèles défunts")
    yield holiday(11, 1, "All Saints' Day", "Allerheiligen", "Toussaint")
    yield holiday(11, 11, "Armistice with Germany", "Waffenstillstand",
                  "Armistice")
    yield holiday(12, 25, "Christmas", "Weihnachten", "Noël",
                  "Esimene Jõulupüha")

    summer = holiday(07, 01, "Summer holidays", "Sommerferien",
                     "Vacances d'été", "Suvevaheaeg")
    summer.end_date = summer.start_date.replace(month=8, day=31)
    yield summer

    ar = settings.SITE.login()
    for obj in RecurrentEvent.objects.all():
        if not obj.update_reminders(ar):
            raise Exception("Oops, %s generated no events" % obj)
Esempio n. 25
0
def objects():

    if settings.SITE.get_language_info('de'):
        munich = 'München'
    else:
        munich = 'Munich'  # en, fr

    if settings.SITE.get_language_info('fr'):
        kelmis = 'La Calamine'
    else:
        kelmis = 'Kelmis'  # en, de

    company = Instantiator('contacts.Company',
                           "name zip_code city:name street street_no",
                           country='EE').build
    yield company('Rumma & Ko OÜ', '10115', 'Tallinn', 'Tartu mnt', '71')

    company = Instantiator('contacts.Company',
                           "name zip_code city:name street street_no",
                           country='BE').build
    yield company('Bäckerei Ausdemwald', '4700', 'Eupen', 'Vervierser Straße',
                  '45')
    yield company('Bäckerei Mießen', '4700', 'Eupen', 'Gospert', '103')
    yield company('Bäckerei Schmitz', '4700', 'Eupen', 'Aachener Straße', '53')
    yield company('Garage Mergelsberg', '4720', kelmis, 'Kasinostraße', '13')

    company = Instantiator('contacts.Company',
                           "name zip_code city:name street street_no",
                           country='NL').build
    yield company('Donderweer BV', '4816 AR', 'Breda', 'Edisonstraat', '12')
    yield company('Van Achter NV', '4836 LG', 'Breda', 'Hazeldonk', '2')

    company = Instantiator('contacts.Company',
                           "name zip_code city:name street street_no",
                           country='DE').build
    yield company('Hans Flott & Co', '22453', 'Hamburg', 'Niendorfer Weg',
                  '532')
    yield company('Bernd Brechts Bücherladen', '80333', munich,
                  'Brienner Straße', '18')
    yield company('Reinhards Baumschule', '12487 ', 'Berlin',
                  'Segelfliegerdamm', '123')

    company = Instantiator('contacts.Company',
                           "name zip_code city:name street street_no",
                           country='FR').build
    yield company('Moulin Rouge', '75018', 'Paris', 'Boulevard de Clichy',
                  '82')
    yield company('Auto École Verte', '54000 ', 'Nancy', 'rue de Mon Désert',
                  '12')

    Place = dd.resolve_model('countries.Place')

    eupen = Place.objects.get(name__exact='Eupen')
    person = Instantiator("contacts.Person",
                          "first_name last_name",
                          country='BE',
                          city=eupen,
                          zip_code='4700').build
    yield person('Andreas', 'Arens', gender=dd.Genders.male)
    yield person('Annette', 'Arens', gender=dd.Genders.female)
    yield person('Hans', 'Altenberg', gender=dd.Genders.male)
    yield person('Alfons', 'Ausdemwald', gender=dd.Genders.male)
    yield person('Laurent', 'Bastiaensen', gender=dd.Genders.male)
    yield person('Charlotte', 'Collard', gender=dd.Genders.female)
    yield person('Ulrike', 'Charlier', gender=dd.Genders.female)
    yield person('Marc', 'Chantraine', gender=dd.Genders.male)
    yield person('Daniel', 'Dericum', gender=dd.Genders.male)
    yield person('Dorothée', 'Demeulenaere', gender=dd.Genders.female)
    yield person('Dorothée',
                 'Dobbelstein-Demeulenaere',
                 gender=dd.Genders.female)
    yield person('Dorothée', 'Dobbelstein', gender=dd.Genders.female)
    yield person('Berta', 'Ernst', gender=dd.Genders.female)
    yield person('Bernd', 'Evertz', gender=dd.Genders.male)
    yield person('Eberhart', 'Evers', gender=dd.Genders.male)
    yield person('Daniel', 'Emonts', gender=dd.Genders.male)
    yield person('Edgar', 'Engels', gender=dd.Genders.male)
    yield person('Luc', 'Faymonville', gender=dd.Genders.male)
    yield person('Germaine', 'Gernegroß', gender=dd.Genders.female)
    yield person('Gregory', 'Groteclaes', gender=dd.Genders.male)
    yield person('Hildegard', 'Hilgers', gender=dd.Genders.female)
    yield person('Henri', 'Hilgers', gender=dd.Genders.male)
    yield person('Irene', 'Ingels', gender=dd.Genders.female)
    yield person('Jérémy', 'Jansen', gender=dd.Genders.male)
    yield person('Jacqueline', 'Jacobs', gender=dd.Genders.female)
    yield person('Johann', 'Johnen', gender=dd.Genders.male)
    yield person('Josef', 'Jonas', gender=dd.Genders.male)
    yield person('Jan', 'Jousten', gender=dd.Genders.male)
    yield person('Karl', 'Kaivers', gender=dd.Genders.male)
    yield person('Guido', 'Lambertz', gender=dd.Genders.male)
    yield person('Laura', 'Laschet', gender=dd.Genders.female)
    yield person('Line', 'Lazarus', gender=dd.Genders.female)
    yield person('Josefine', 'Leffin', gender=dd.Genders.female)
    yield person('Marc', 'Malmendier', gender=dd.Genders.male)
    yield person('Melissa', 'Meessen', gender=dd.Genders.female)
    yield person('Michael', 'Mießen', gender=dd.Genders.male)
    yield person('Marie-Louise', 'Meier', gender=dd.Genders.female)

    raeren = Place.objects.get(name__exact='Raeren')
    person = Instantiator("contacts.Person",
                          "first_name last_name",
                          country='BE',
                          language=settings.SITE.DEFAULT_LANGUAGE.django_code,
                          city=raeren,
                          zip_code='4730').build
    yield person('Erich', 'Emonts', gender=dd.Genders.male)
    yield person('Erwin', 'Emontspool', gender=dd.Genders.male)
    yield person('Erna', 'Emonts-Gast', gender=dd.Genders.female)
    yield person('Alfons', 'Radermacher', gender=dd.Genders.male)
    yield person('Berta', 'Radermacher', gender=dd.Genders.female)
    yield person('Christian', 'Radermacher', gender=dd.Genders.male)
    yield person('Daniela', 'Radermacher', gender=dd.Genders.female)
    yield person('Edgard', 'Radermacher', gender=dd.Genders.male)
    yield person('Fritz', 'Radermacher', gender=dd.Genders.male)
    yield person('Guido', 'Radermacher', gender=dd.Genders.male)
    yield person('Hans', 'Radermacher', gender=dd.Genders.male)
    yield person('Hedi', 'Radermacher', gender=dd.Genders.female)
    yield person('Inge', 'Radermacher', gender=dd.Genders.female)
    yield person('Jean', 'Radermacher', gender=dd.Genders.male)

    # special challenges for alphabetic ordering
    yield person('Didier', 'di Rupo', gender=dd.Genders.male)
    yield person('David', 'da Vinci', gender=dd.Genders.male)
    yield person('Vincent', 'van Veen', gender=dd.Genders.male)
    yield person('Õie', 'Õunapuu', gender=dd.Genders.female)
    yield person('Otto', 'Östges', gender=dd.Genders.male)
    yield person('Erna', 'Ärgerlich', gender=dd.Genders.female)

    person = Instantiator("contacts.Person",
                          country='BE',
                          city=Place.objects.get(name__exact='Angleur')).build
    yield person(first_name='Bernard', last_name='Bodard', title='Dr.')
    yield person(first_name='Jean', last_name='Dupont')

    person = Instantiator(
        "contacts.Person",
        country='NL',
        city=Place.objects.get(name__exact='Amsterdam')).build
    yield person(first_name='Mark',
                 last_name='Martelaer',
                 gender=dd.Genders.male)
    yield person(first_name='Rik',
                 last_name='Radermecker',
                 gender=dd.Genders.male)
    yield person(first_name='Marie-Louise',
                 last_name='Vandenmeulenbos',
                 gender=dd.Genders.female)

    person = Instantiator("contacts.Person", country='DE').build
    yield person(first_name='Emil',
                 last_name='Eierschal',
                 gender=dd.Genders.male)
    yield person(first_name='Lisa', last_name='Lahm', gender=dd.Genders.female)
    yield person(first_name='Bernd',
                 last_name='Brecht',
                 gender=dd.Genders.male)
    yield person(first_name='Karl', last_name='Keller', gender=dd.Genders.male)

    person = Instantiator("contacts.Person", country='FR').build
    yield person(first_name='Robin',
                 last_name='Dubois',
                 gender=dd.Genders.male)
    yield person(first_name='Denis', last_name='Denon', gender=dd.Genders.male)
    yield person(first_name='Jérôme',
                 last_name='Jeanémart',
                 gender=dd.Genders.male)

    nr = 1
    for p in rt.modules.contacts.Person.objects.filter(city=eupen):
        p.street = STREETS.pop()
        p.stret_no = str(nr)
        p.save()
        nr += 1
Esempio n. 26
0
File: std.py Progetto: TonisPiip/xl
def objects():

    #~ yield companyType('Firma','Firma')
    #~ yield companyType('asbl','asbl')
    #~ yield companyType('A.S.B.L.','A.S.B.L.')
    #~ yield companyType('sprl','sprl')
    #~ yield companyType('GmbH','GmbH')
    #~ yield companyType('AG','AG')
    #~ yield companyType('S.A.','S.A.')
    #~ yield companyType('S.C.','S.C.')
    #~ yield companyType('V.o.G.','V.o.G.')
    #~ yield companyType('G.o.E.','G.o.E.')
    #~ yield companyType('A.S.B.L.','Association sans but lucratif')
    #~ yield companyType('Maison','Maison')
    #~ yield companyType('Fachklinik','Fachklinik')
    #~ yield companyType("Centre d'Accueil d'Urgence","Centre d'Accueil d'Urgence")

    #~ yield companyType(**babel_values('name',
    #~ en=u"Public Limited Company",
    #~ nl=u'NV (Naamloze Vennootschap)',
    #~ fr=u'SA (Société Anonyme)',
    #~ de=u"AG (Aktiengesellschaft)"))

    for ct in COMPANY_TYPES:
        yield companyType(**ct)

    yield roletype(**babel_values('name',
                                  en="Manager",
                                  fr='Gérant',
                                  de="Geschäftsführer",
                                  et="Tegevjuht"))
    yield roletype(**babel_values(
        'name', en="Director", fr='Directeur', de="Direktor", et="Direktor"))
    yield roletype(**babel_values(
        'name', en="Secretary", fr='Secrétaire', de="Sekretär", et="Sekretär"))
    yield roletype(**babel_values('name',
                                  en="IT Manager",
                                  fr='Gérant informatique',
                                  de="EDV-Manager",
                                  et="IT manager"))
    yield roletype(**babel_values(
        'name', en="President", fr='Président', de="Präsident",
        et="President"))

    if settings.SITE.is_installed('contenttypes'):

        from django.contrib.contenttypes.models import ContentType

        I = Instantiator('gfks.HelpText', 'content_type field help_text').build

        Person = resolve_model("contacts.Person")
        t = ContentType.objects.get_for_model(Person)

        #~ yield I(t,'birth_date',u"""\
        #~ Unkomplette Geburtsdaten sind erlaubt, z.B.
        #~ <ul>
        #~ <li>00.00.1980 : irgendwann in 1980</li>
        #~ <li>00.07.1980 : im Juli 1980</li>
        #~ <li>23.07.0000 : Geburtstag am 23. Juli, Alter unbekannt</li>
        #~ </ul>
        #~ """)

        Partner = resolve_model('contacts.Partner')
        t = ContentType.objects.get_for_model(Partner)
        yield I(
            t, 'language', u"""\
    Die Sprache, in der Dokumente ausgestellt werden sollen.
    """)
Esempio n. 27
0
File: std.py Progetto: TonisPiip/xl
"""

from __future__ import unicode_literals
from builtins import filter

from django.db import models
from django.conf import settings

from django.utils.translation import ugettext as _

from lino.api.dd import babel_values

from lino.core.utils import resolve_model
from lino.utils.instantiator import Instantiator

companyType = Instantiator('contacts.CompanyType', "abbr name").build
roletype = Instantiator('contacts.RoleType', "name").build

# thanks to http://belgium.angloinfo.com/countries/belgium/businesses.asp
# see also http://en.wikipedia.org/wiki/Types_of_business_entity

COMPANY_TYPES_FORMAT = 'en nl fr de'
COMPANY_TYPES_TEXT = u"""
Public Limited Company    | NV (Naamloze Vennootschap)   | SA (Société Anonyme) |  AG (Aktiengesellschaft)
Limited Liability Company | BVBA (Besloten Vennootschap met Beperkte Aansprakelijkheid)  | SPRL (Société Privée à Responsabilité Limitée) | PGmbH (Private Gesellschaft mit beschränkter Haft)
One-person Private Limited Company | EBVBA (Eenpersoons Beslotenvennootschap met Beperkte Aansprakelijkheid) | SPRLU (Société d'Une Personne à Responsabilité Limitée) | EGmbH (Einpersonengesellschaft mit beschränkter Haft)
Cooperative Company with Limited Liability | CVBA (Cooperatieve Vennootschap met Beperkte Aansprakelijkheid) | SCRL (Société Coopérative à Responsabilité Limitée) | Kooperative mit beschränkter Haft
Cooperative Company with Unlimited Liability | CVOA (Cooperatieve Vennootschap met Onbeperkte Aansprakelijkheid) | SCRI (Société Coopérative à Responsabilité Illimitée) | Kooperative mit unbeschränkter Haft
General Partnership | Comm VA (Commanditaire Vennootschap op Aandelen | SNC (Société en Nom Collectif) |
Limited Partnership | Comm V (Gewone Commanditaire Vennootschap) | SCS (Société en Commandite Simple) |
Non-stock Corporation | Maatschap | Société de Droit Commun | Gesellschaft öffentlichen Rechts
Esempio n. 28
0
File: std.py Progetto: TonisPiip/xl
def objects():
    cal = rt.modules.cal
    add = Instantiator('cal.Priority', 'ref').build
    yield add('1', **dd.babel_values('name', en=u"very urgent", de=u"sehr dringend",   fr=u"très urgent", et=u"väga kiire"))
    yield add('3', **dd.babel_values('name', en=u"urgent", de=u"dringend",   fr=u"urgent", et="kiire"))
    yield add('5', **dd.babel_values('name', en=u"normal", de=u"normal",   fr=u"normal", et="keskmine"))
    yield add('9', **dd.babel_values('name', en=u"not urgent", de=u"nicht dringend",   fr=u"pas urgent", et="mitte kiire"))

    calendar = Instantiator('cal.Calendar').build
    general = calendar(**dd.str2kw('name', _("General")))
    yield general
    # settings.SITE.site_config.site_calendar = general
    settings.SITE.site_config.update(
        site_calendar=general,
        hide_events_before=dd.demo_date().replace(month=4, day=1))
    
    # yield settings.SITE.site_config

    event_type = Instantiator('cal.EventType').build
    holidays = event_type(
        is_appointment=False,
        all_rooms=True, **dd.str2kw('name', _("Holidays")))
    yield holidays
    yield event_type(**dd.str2kw('name', _("Meeting")))

    RecurrentEvent = rt.modules.cal.RecurrentEvent
    add = Instantiator(RecurrentEvent, event_type=holidays).build

    def holiday(month, day, en, de, fr, et=None):
        if et is None:
            et = en
        return add(
            every_unit=cal.Recurrencies.yearly,
            monday=True, tuesday=True, wednesday=True, thursday=True,
            friday=True, saturday=True, sunday=True,
            every=1,
            start_date=datetime.date(
                year=cal.DEMO_START_YEAR,
                month=month, day=day),
            **dd.babelkw('name', en=en, de=de, fr=fr, et=et))
    yield holiday(1, 1, "New Year's Day", "Neujahr", "Jour de l'an", "Uusaasta")
    yield holiday(5, 1, "International Workers' Day", "Tag der Arbeit", "Premier Mai", "kevadpüha")
    yield holiday(7, 21, "National Day", "Nationalfeiertag", "Fête nationale", "Belgia riigipüha")
    yield holiday(8, 15, "Assumption of Mary", "Mariä Himmelfahrt", "Assomption de Marie")
    yield holiday(10, 31, "All Souls' Day", "Allerseelen", "Commémoration des fidèles défunts")
    yield holiday(11, 1, "All Saints' Day", "Allerheiligen", "Toussaint")
    yield holiday(11, 11, "Armistice with Germany", "Waffenstillstand", "Armistice")
    yield holiday(12, 25, "Christmas", "Weihnachten", "Noël", "Esimene Jõulupüha")

    easter1 = easter(cal.DEMO_START_YEAR)

    def relative_holiday(offset, name):
        return add(
            every_unit=cal.Recurrencies.easter, every=1,
            start_date=easter1+relativedelta(days=offset),
            **dd.str2kw('name', name))

    yield relative_holiday(0, _("Easter sunday"))
    yield relative_holiday(1, _("Easter monday"))
    yield relative_holiday(39, _("Ascension of Jesus"))
    yield relative_holiday(50, _("Pentecost"))
    yield relative_holiday(-2, _("Good Friday"))
    yield relative_holiday(-46, _("Ash Wednesday"))
    yield relative_holiday(-48, _("Rosenmontag"))

    ar = settings.SITE.login()
    for obj in RecurrentEvent.objects.all():
        if not obj.update_reminders(ar):
            raise Exception("Oops, %s generated no events" % obj)
Esempio n. 29
0
File: std.py Progetto: DarioGT/lino
def objects():

    noteType = Instantiator('notes.NoteType', "name").build
    yield noteType(_("Default"),
                   build_method='appyodt',
                   template='Default.odt')
Esempio n. 30
0
def objects():

    productcat = Instantiator('products.ProductCat').build
    product = Instantiator('products.Product', "sales_price cat").build

    furniture = productcat(id=1,
                           product_type=ProductTypes.default,
                           **dd.babel_values('name',
                                             en="Furniture",
                                             et="Mööbel",
                                             de="Möbel",
                                             fr="Meubles"))
    yield furniture
    # print "foo", furniture.id, furniture
    hosting = productcat(id=2,
                         product_type=ProductTypes.default,
                         **dd.babel_values('name',
                                           en="Website Hosting",
                                           et="Veebimajutus",
                                           de="Website-Hosting",
                                           fr="Hébergement de sites Internet"))
    yield hosting

    other = productcat(id=3, **dd.str2kw('name', _("Other")))
    yield other

    kw = dd.babel_values('name',
                         en="Wooden table",
                         et=u"Laud puidust",
                         de="Tisch aus Holz",
                         fr=u"Table en bois")
    kw.update(
        dd.babel_values(
            'description',
            en="""\
This table is made of pure wood.
It has **four legs**.
Designed to fit perfectly with **up to 6 wooden chairs**.
Product of the year 2008.""",
            et="""\
See laud on tehtud ehtsast puust.
Sellel on **neli jalga**.
Disainitud sobida kokku **kuni 6 puidust tooliga**.
Product of the year 2008.""",
            de="""\
Dieser Tisch ist aus echtem Holz.
Er hat **vier Beine**.
Passt perfekt zusammen mit **bis zu 6 Stühlen aus Holz**.
Produkt des Jahres 2008.""",
            fr="""\
Cette table est en bois authentique.
Elle a **quatre jambes**.
Conçue pour mettre jusqu'à **6 chaises en bois**.
Produit de l'année 2008.""",
        ))
    yield product("199.99", 1, **kw)
    yield product(
        "99.99", 1,
        **dd.babel_values('name',
                          en="Wooden chair",
                          et="Tool puidust",
                          de="Stuhl aus Holz",
                          fr="Chaise en bois"))
    yield product(
        "129.99", 1,
        **dd.babel_values('name',
                          en="Metal table",
                          et="Laud metallist",
                          de="Tisch aus Metall",
                          fr="Table en métal"))
    yield product(
        "79.99", 1,
        **dd.babel_values('name',
                          en="Metal chair",
                          et="Tool metallist",
                          de="Stuhl aus Metall",
                          fr="Chaise en métal"))
    hosting = product(
        "3.99", 2,
        **dd.babel_values('name',
                          en="Website hosting 1MB/month",
                          et="Majutus 1MB/s",
                          de="Website-Hosting 1MB/Monat",
                          fr="Hébergement 1MB/mois"))
    yield hosting
    yield product(
        "30.00", 2,
        **dd.babel_values('name',
                          en="IT consultation & maintenance",
                          et=u"IKT konsultatsioonid & hooldustööd",
                          de=u"EDV Konsultierung & Unterhaltsarbeiten",
                          fr=u"ICT Consultation & maintenance"))
    yield product(
        "35.00", 2,
        **dd.babel_values(
            'name',
            en="Server software installation, configuration and administration",
            et=
            "Serveritarkvara installeerimine, seadistamine ja administreerimine",
            de="Server software installation, configuration and administration",
            fr="Server software installation, configuration and administration"
        ))

    yield product(
        "40.00", 2,
        **dd.babel_values('name',
                          en="Programming",
                          et="Programmeerimistööd",
                          de="Programmierung",
                          fr="Programmation"))

    yield product(
        "25.00", 2,
        **dd.babel_values(
            'name',
            en="Image processing and website content maintenance",
            et="Pilditöötlus ja kodulehtede sisuhaldustööd",
            de="Bildbearbeitung und Unterhalt Website",
            fr="Traitement d'images et maintenance site existant"))

    yield product("29.90", 3,
                  **dd.str2kw('name', _("Book"), vat_class="reduced"))
    yield product("1.40", 3, **dd.str2kw('name',
                                         _("Stamp"),
                                         vat_class="exempt"))
Esempio n. 31
0
File: std.py Progetto: TonisPiip/xl
def objects():
    """
    Education levels in Belgium:
      http://www.guide-enseignement.be/infos_pages/diplomes.html

    Certificat d'études de base (CEB)
    Certificat d'enseignement secondaire du deuxième degré (C.E.S.D.D.)
    Certificat d'études de sixième année de l'enseignement secondaire professionnel (C.E.6.P.)
    Certificat de qualification (C.Q.)
    Certificat d'enseignement secondaire supérieur (C.E.S.S.)
    Certificat relatif aux connaissances de gestion de base
    Brevet d’enseignement secondaire complémentaire – section "soins infirmiers(E.P.S.C.)" 
    """

    eduLevel = Instantiator('cv.EducationLevel').build
    yield eduLevel(
        **dd.babel_values('name', de="Primär", fr="Primaire", en="Primary"))
    yield eduLevel(**dd.babel_values(
        'name', de="Sekundär", fr="Secondaire", en="Secondary"))
    yield eduLevel(**dd.babel_values(
        'name', de="Hochschule", fr="Supérieur", en="Higher"))
    yield eduLevel(
        **dd.babel_values('name', de="Bachelor", fr="Bachelor", en="Bachelor"))
    yield eduLevel(
        **dd.babel_values('name', de="Master", fr="Master", en="Master"))

    studyType = Instantiator('cv.StudyType').build
    yield studyType(**dd.babel_values(
        'name',
        de=u"Schule",
        fr=u"École",
        en=u"School",
    ))
    yield studyType(**dd.babel_values(
        'name',
        de=u"Sonderschule",
        fr=u"École spéciale",
        en=u"Special school",
    ))
    yield studyType(**dd.babel_values(
        'name',
        de=u"Ausbildung",
        fr=u"Formation",
        en=u"Training",
    ))
    yield studyType(**dd.babel_values(
        'name',
        de=u"Lehre",
        fr=u"Apprentissage",
        en=u"Apprenticeship",
    ))
    yield studyType(**dd.babel_values(
        'name',
        de=u"Hochschule",
        fr=u"École supérieure",
        en=u"Highschool",
    ))
    yield studyType(**dd.babel_values(
        'name',
        de=u"Universität",
        fr=u"Université",
        en=u"University",
    ))
    yield studyType(**dd.babel_values(
        'name',
        de=u"Teilzeitunterricht",
        fr=u"Cours à temps partiel",
        en=u"Part-time study",
    ))
    yield studyType(**dd.babel_values(
        'name',
        de=u"Fernkurs",
        fr=u"Cours à distance",
        en=u"Remote study",
    ))

    M = Instantiator('cv.StudyType', is_training=True, is_study=False).build
    yield M(**dd.str2kw('name', _("Prequalifying")))
    yield M(**dd.str2kw('name', _("Qualifying")))
    yield M(**dd.str2kw('name', _("Alpha")))

    M = Instantiator('cv.Duration').build
    yield M(**dd.str2kw('name', _("Unlimited duration")))
    yield M(**dd.str2kw('name', _("Limited duration")))
    yield M(**dd.str2kw('name', _("Clearly defined job")))
    yield M(**dd.str2kw('name', _("Replacement")))
    yield M(**dd.str2kw('name', _("Interim")))
    """
    Contrat de travail à durée indéterminée
    - Arbeidsovereenkomst voor onbepaalde tijd
    Contrat de travail à durée déterminée
    - Arbeidsovereenkomst voor bepaalde tijd
    Contrat pour un travail nettement défini
    - Arbeidsovereenkomst voor een duidelijk omschreven werk
    Contrat de remplacement
    - Vervangingsovereenkomst
    Contrat d’intérim
    Convention de premier emploi
    Contrat de travail à temps partiel
    """

    status = Instantiator('cv.Status').build
    yield status(**dd.str2kw('name', _("Worker")))
    yield status(**dd.str2kw('name', _("Employee")))
    yield status(**dd.str2kw('name', _("Freelancer")))
    yield status(**dd.str2kw('name', _("Voluntary")))
    yield status(**dd.str2kw('name', _("Student")))
    yield status(**dd.str2kw('name', _("Laboratory")))  # fr=Stage,
    # de=Praktikum
    yield status(**dd.str2kw('name', _("Interim")))

    regime = Instantiator('cv.Regime').build
    yield regime(**dd.str2kw('name', _("Full-time")))
    yield regime(**dd.str2kw('name', _("Part-time")))
    yield regime(**dd.str2kw('name', _("Other")))
Esempio n. 32
0
def objects():
    city = Instantiator('countries.Place', country='EE').build
    input_file = rt.find_config_file('sihtnumbrid.csv')
    settings.SITE.logger.info("Importing Estonian places from %s", input_file)
    f = codecs.open(input_file, 'r', 'latin-1', 'replace')
    #~ f = codecs.open(input_file,'r','utf-8','replace')
    f.readline()
    r = unicode_csv_reader(f, delimiter=';')
    #~ r = UnicodeReader(f,delimiter=';')
    # r.next()
    maakonnad = dict()
    mk_names_dict = dict()
    #~ vallad = dict()
    #~ laakid = dict()
    #~ names = set()
    for ln in r:
        # print repr(ln)
        if len(ln) > 2:
            mk = maakonnad.get(ln[0])
            if mk is None:
                mk = city(name=ln[0], type=PlaceTypes.county)
                yield mk
                #~ print "20120822 maakond", mk, mk.pk
                maakonnad[ln[0]] = mk
                mk_names_dict[ln[0]] = dict()

            names = mk_names_dict[ln[0]]

            if ln[1]:
                vald = names.get(ln[1])
                if vald is None:
                    #~ ct = CITY_TYPES[ln[4]]
                    vald = city(name=ln[1],
                                type=PlaceTypes.municipality,
                                parent=mk, zip_code=ln[7])
                    yield vald
                    #~ if ct != PlaceTypes.municipality:
                        #~ print "20120822", vald, "expected municipality, found", ct
                    #~ else:
                    #~ print "20120822 vald", vald, vald.pk
                    names[ln[1]] = vald
                else:
                    vald.zip_code = ''
                    vald.save()

            else:
                vald = None

            laak = names.get(ln[2])
            if laak is None:
                #~ ct = CITY_TYPES.get(ln[4])
                ct = CITY_TYPES[ln[4]]
                if ct is None:
                    #~ print "20120822 ignored addressiliik", ln[4]
                    continue
                elif vald is None:
                    laak = city(name=ln[2], type=ct, parent=mk, zip_code=ln[7])
                else:
                    laak = city(name=ln[2], type=ct,
                                parent=vald, zip_code=ln[7])
                yield laak
                #~ print "20120822", laak.type, laak, laak.pk
                names[ln[2]] = laak
                #~ else:
                    #~ print "20120822 pole vald ega Tallinn:", ln
                    #~ names.add(ln[2])
            else:
                laak.zip_code = ''
                laak.save()
    f.close()