def objects(): if False: yield sales.InvoicingMode(**dd.babel_values( 'name', en='Default', de="Standard", fr="Standard")) if ledger: Invoice = dd.resolve_model('sales.VatProductInvoice') InvoiceItem = dd.resolve_model('sales.InvoiceItem') vt = ledger.VoucherTypes.get_for_model(Invoice) JOURNALS = Cycler(vt.get_journals()) if len(JOURNALS.items) == 0: raise Exception("20140127 no journals for %s" % vt) PARTNERS = Cycler(Partner.objects.all()) USERS = Cycler(settings.SITE.user_model.objects.all()) PRODUCTS = Cycler(rt.models.products.Product.objects.all()) ITEMCOUNT = Cycler(1, 2, 3) for i in range(20): jnl = JOURNALS.pop() invoice = Invoice(journal=jnl, partner=PARTNERS.pop(), user=USERS.pop(), date=settings.SITE.demo_date(i - 21)) yield invoice for j in range(ITEMCOUNT.pop()): item = InvoiceItem(voucher=invoice, product=PRODUCTS.pop()) item.product_changed(REQUEST) item.before_ui_save(REQUEST) yield item invoice.register(REQUEST) invoice.save()
def objects(): if False: yield sales.InvoicingMode( **dd.babel_values( 'name', en='Default', de="Standard", fr="Standard")) if ledger: Invoice = dd.resolve_model('sales.VatProductInvoice') InvoiceItem = dd.resolve_model('sales.InvoiceItem') vt = ledger.VoucherTypes.get_for_model(Invoice) JOURNALS = Cycler(vt.get_journals()) if len(JOURNALS.items) == 0: raise Exception("20140127 no journals for %s" % vt) PARTNERS = Cycler(Partner.objects.all()) USERS = Cycler(settings.SITE.user_model.objects.all()) PRODUCTS = Cycler(rt.models.products.Product.objects.all()) ITEMCOUNT = Cycler(1, 2, 3) for i in range(20): jnl = JOURNALS.pop() invoice = Invoice( journal=jnl, partner=PARTNERS.pop(), user=USERS.pop(), date=settings.SITE.demo_date(i-21)) yield invoice for j in range(ITEMCOUNT.pop()): item = InvoiceItem(voucher=invoice, product=PRODUCTS.pop()) item.product_changed(REQUEST) item.before_ui_save(REQUEST) yield item invoice.register(REQUEST) invoice.save()
def objects(): Book = dd.resolve_model('bibles.Book') def book(ref, en, abbr_en, de, abbr_de, et, abbr_et, **kw): kw.update(dd.babel_values('name', en=en, de=de, et=et)) kw.update(dd.babel_values('abbr', en=abbr_en, de=abbr_de, et=abbr_et)) return Book(ref=ref, **kw) yield book("genesis", "Genesis", "Gen", "Genesis", "Gen", "Esimene Moosese raamat", "1Mos") yield book("exodus", "Exodus", "Ex", "Exodus", "Ex", "Teine Moosese raamat", "2Mos") yield book("leviticus", "Leviticus", "Lev", "Leviticus", "Lev", "Kolmas Moosese raamat", "3Mos") yield book("matthew", "Matthew", "Mt", "Mattäus", "Mt", "Matteuse", "Mt") from lino_logos.lib.bibles.fixtures.eng_kjv import objects yield objects() from lino_logos.lib.bibles.fixtures.eng_oeb import objects yield objects() from lino_logos.lib.bibles.fixtures.est_eps import objects yield objects()
def handle(self, *args, **options): model = dd.resolve_model('cbss.' + args[0]) pk = int(args[1]) req = model.objects.get(pk=pk) req.validate_request() #~ print req.logged_messages print req.debug_messages
def create_invoice(self, **kwargs): ITEM_MODEL = dd.resolve_model(dd.plugins.invoicing.item_model) M = ITEM_MODEL._meta.get_field('voucher').remote_field.model kwargs.update( journal=self.journal, entry_date=self.today, voucher_date=self.get_max_date()) invoice = M(**kwargs) invoice.fill_defaults() return invoice
def for_master_model(cls, model, **kwargs): """Return a queryset of master :class:`Star` instances for the given database model. """ if isinstance(model, string_types): model = dd.resolve_model(model) ct = ContentType.objects.get_for_model(model) kwargs["master__" + cls.owner.ct_field] = ct return cls.objects.filter(**kwargs)
def __init__(self, model, table_class): self.table_class = table_class model = dd.resolve_model(model) self.model = model value = dd.full_model_name(model) # text = model._meta.verbose_name + ' (%s)' % dd.full_model_name(model) text = string_concat(model._meta.verbose_name, " (", value, ")") name = None super(ConfirmationType, self).__init__(value, text, name)
def objects(): from lino_welfare.modlib.newcomers.models import Broker, Faculty, Competence pcsw = dd.resolve_app('pcsw') Person = dd.resolve_model('contacts.Person') I = Instantiator(Broker).build #~ yield I(**babel_values('name', #~ de=u"Polizei", fr=u"Police",en=u"Police")) #~ yield I(**babel_values('name', #~ de=u"Jugendgericht", fr=u"Jugendgericht",en=u"Jugendgericht")) yield I(name="Police") yield I(name="Other PCSW") I = Instantiator(Faculty).build yield I(weight=10, **babel_values('name', de=u"Eingliederungseinkommen (EiEi)", fr=u"Revenu d'intégration sociale (RIS)", en=u"EiEi")) yield I(weight=5, **babel_values('name', de=u"DSBE", fr=u"Service d'insertion socio-professionnelle", en=u"DSBE")) yield I(weight=4, **babel_values('name', de=u"Ausländerbeihilfe", fr=u"Aide sociale équivalente (pour étrangers)", en=u"Ausländerbeihilfe")) yield I(weight=6, **babel_values('name', de=u"Finanzielle Begleitung", fr=u"Accompagnement budgétaire", en=u"Finanzielle Begleitung")) yield I(weight=2, **babel_values('name', de=u"Laufende Beihilfe", fr=u"Aide complémenataire", en=u"Laufende Beihilfe")) #~ User = resolve_model('users.User') #~ yield User(username="******", #~ first_name="Caroline",last_name="Carnol", # ~ profile='200') # UserTypes.caroline) #~ FACULTIES = Cycler(Faculty.objects.all()) #~ profiles = [p for p in UserTypes.items() if p.integ_level] #~ USERS = Cycler(User.objects.filter(profile__in=profiles)) #~ for i in range(7): #~ yield Competence(user=USERS.pop(),faculty=FACULTIES.pop()) #~ for p in pcsw.Client.objects.filter(client_state=pcsw.ClientStates.new): #~ p.faculty = FACULTIES.pop() #~ p.save() newcomers = dd.resolve_app('newcomers') users = dd.resolve_app('users') QUOTAS = Cycler(100, 60, 50, 20) FACULTIES = Cycler(newcomers.Faculty.objects.all()) profiles = [ p for p in UserTypes.items() if isinstance(p.role, IntegrationAgent) and not isinstance(p.role, dd.SiteStaff)] qs = users.User.objects.filter(profile__in=profiles) for u in qs: u.newcomer_quota = QUOTAS.pop() yield u USERS = Cycler(qs) for i in range(7): yield newcomers.Competence(user=USERS.pop(), faculty=FACULTIES.pop()) for p in pcsw.Client.objects.exclude( client_state=pcsw.ClientStates.former): p.faculty = FACULTIES.pop() p.save()
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)
def objects(): ExcerptType = rt.models.excerpts.ExcerptType ContentType = rt.models.contenttypes.ContentType yield ExcerptType( template="default.weasy.html", primary=True, certifying=True, build_method='weasy2pdf', content_type=ContentType.objects.get_for_model( dd.resolve_model('bevats.Declaration')), **dd.str2kw('name', _("VAT declaration")))
def __init__(self, model, table_class, text=None): self.table_class = table_class model = dd.resolve_model(model) self.model = model # value = dd.full_model_name(model) value = str(table_class) if text is None: # text = model._meta.verbose_name + ' (%s)' % dd.full_model_name(model) # text = model._meta.verbose_name + ' (%s.%s)' % ( text = string_concat(model._meta.verbose_name, " (", value, ")") # model.__module__, model.__name__) name = None super(VoucherType, self).__init__(value, text, name)
def __init__(self, table_class, text=None): self.table_class = table_class model = dd.resolve_model(table_class.model) self.model = model # value = dd.full_model_name(model) value = str(table_class) if text is None: # text = model._meta.verbose_name + ' (%s)' % dd.full_model_name(model) # text = model._meta.verbose_name + ' (%s.%s)' % ( text = format_lazy(u"{} ({})",model._meta.verbose_name, value) # model.__module__, model.__name__) name = None super(VoucherType, self).__init__(value, text, name)
def __init__(self, table_class, text=None): self.table_class = table_class model = dd.resolve_model(table_class.model) self.model = model # value = dd.full_model_name(model) value = str(table_class) if text is None: # text = model._meta.verbose_name + ' (%s)' % dd.full_model_name(model) # text = model._meta.verbose_name + ' (%s.%s)' % ( text = format_lazy(u"{} ({})", model._meta.verbose_name, value) # model.__module__, model.__name__) name = None super(VoucherType, self).__init__(value, text, name)
def get_vote_raters(self): """"Yield the :meth:`lino_xl.lib.votes.mixins.Votable.get_vote_raters` for this ticket. This is the author and (if set) the :attr:`end_user`. """ if self.user: yield self.user if issubclass(settings.SITE.user_model, dd.resolve_model(end_user_model)): if self.end_user: u = self.end_user.get_as_user() if u is not None: yield u
def show_fields(self, model, field_names=None, languages=None): model = dd.resolve_model(model) if field_names is not None: field_names = dd.fields_list(model, field_names) items = [] for f in model._meta.fields: if field_names is None or f.name in field_names: name = f.name ref = model.__module__ + '.' + model.__name__ + '.' + name verbose_name = force_text(f.verbose_name).strip() help_text = force_text(f.help_text).replace('\n', ' ') txt = "**{verbose_name}** (:attr:`{name} <{ref}>`) : " \ "{help_text}".format(**locals()) items.append(txt) return rstgen.ul(items)
def create_pupil_choice(self, text): """ Called when an unknown pupil name was given. Try to auto-create it. """ Pupil = dd.resolve_model(pupil_model) kw = parse_name(text) if len(kw) != 2: raise ValidationError( "Cannot find first and last names in %r to \ auto-create pupil", text) p = Pupil(**kw) p.full_clean() p.save() return p
def handle(self, *args, **options): dbname = settings.DATABASES['default']['NAME'] if options.get('interactive'): if not confirm("This is going to GARBLE your database (%s).\nAre you sure (y/n) ?" % dbname): raise CommandError("User abort.") contacts = dd.resolve_app('contacts') User = dd.resolve_model(settings.SITE.user_model) Person = dd.resolve_model('contacts.Person') Household = dd.resolve_model('households.Household') Member = dd.resolve_model('households.Member') Role = dd.resolve_model('households.Role') Country = dd.resolve_model('countries.Country') for p in Person.objects.order_by('id'): if User.objects.filter(partner=p).count() > 0: # users keep their original name pass else: p.nationality = Country.objects.get( isocode=NATIONALITIES.pop()) p.last_name = LAST_NAMES.pop() if p.gender == dd.Genders.male: p.first_name = MALES.pop() FEMALES.pop() else: p.first_name = FEMALES.pop() MALES.pop() #~ dblogger.log_changes(REQUEST,p) p.name = join_words(p.last_name, p.first_name) p.save() dblogger.info("%s from %s", unicode(p), unicode(p.nationality)) MEN = Cycler(Person.objects.filter(gender=dd.Genders.male) .order_by('id')) WOMEN = Cycler( Person.objects.filter(gender=dd.Genders.female).order_by('id')) for h in Household.objects.all(): if h.member_set.all().count() == 0: he = MEN.pop() she = WOMEN.pop() h.name = he.last_name + "-" + she.last_name Member(household=h, person=he, role=Role.objects.get(pk=1)).save() Member(household=h, person=she, role=Role.objects.get(pk=2)).save() else: h.name = '' h.full_clean() h.save() dblogger.info(unicode(h)) dblogger.info("GARBLE done on database %s." % dbname)
def create_invoice(self, ar): """Create the invoice corresponding to this item of the plan. """ if self.plan.journal is None: raise Warning(_("No journal specified")) ITEM_MODEL = dd.resolve_model(dd.plugins.invoicing.item_model) M = ITEM_MODEL._meta.get_field('voucher').rel.to invoice = M(partner=self.partner, journal=self.plan.journal, voucher_date=self.plan.today, user=ar.get_user(), entry_date=self.plan.today) lng = invoice.get_print_language() items = [] with translation.override(lng): for ii in self.plan.get_invoiceables_for_plan(self.partner): pt = ii.get_invoiceable_payment_term() if pt: invoice.payment_term = pt pt = ii.get_invoiceable_paper_type() if pt: invoice.paper_type = pt for i in ii.get_wanted_items(ar, invoice, self.plan, ITEM_MODEL): items.append(i) if len(items) == 0: ar.info(_("No invoiceables found for %s.") % self) return invoice.full_clean() invoice.save() for i in items: i.voucher = invoice i.full_clean() i.save() self.invoice = invoice self.save() invoice.compute_totals() invoice.full_clean() invoice.save() invoice.register(ar) return invoice
def get_vote_raters(self): """"Yield the :meth:`lino_xl.lib.votes.mixins.Votable.get_vote_raters` for this ticket. This is the author and (if set) the :attr:`end_user`. """ if self.user: yield self.user if issubclass( settings.SITE.user_model, dd.resolve_model(end_user_model)): if self.end_user: u = self.end_user.get_as_user() if u is not None: yield u
def create_invoice(self, ar): if self.plan.journal is None: raise Warning(_("No journal specified")) ITEM_MODEL = dd.resolve_model(dd.plugins.invoicing.item_model) M = ITEM_MODEL._meta.get_field('voucher').remote_field.to invoice = M(partner=self.partner, journal=self.plan.journal, voucher_date=self.plan.today, user=ar.get_user(), entry_date=self.plan.today) lng = invoice.get_print_language() items = [] with translation.override(lng): for ii in self.plan.get_invoiceables_for_plan(self.partner): pt = ii.get_invoiceable_payment_term() if pt: invoice.payment_term = pt pt = ii.get_invoiceable_paper_type() if pt: invoice.paper_type = pt for i in ii.get_wanted_items( ar, invoice, self.plan, ITEM_MODEL): items.append(i) if len(items) == 0: raise Warning(_("No invoiceables found for %s.") % self) # dd.logger.warning( # _("No invoiceables found for %s.") % self.partner) # return invoice.full_clean() invoice.save() for i in items: i.voucher = invoice i.full_clean() i.save() self.invoice = invoice self.save() invoice.compute_totals() invoice.full_clean() invoice.save() invoice.register(ar) return invoice
def objects(): ExcerptType = rt.modules.excerpts.ExcerptType ContentType = rt.modules.contenttypes.ContentType # yield ExcerptType( # body_template="payment_reminder.body.html", # content_type=ContentType.objects.get_for_model( # dd.resolve_model('contacts.Partner')), # **dd.str2kw('name', _("Payment reminder"))) yield ExcerptType(template="payment_reminder.weasy.html", build_method='weasy2pdf', content_type=ContentType.objects.get_for_model( dd.resolve_model('contacts.Partner')), **dd.str2kw('name', _("Payment reminder"))) yield payment_terms()
def objects(): ExcerptType = rt.modules.excerpts.ExcerptType ContentType = rt.modules.contenttypes.ContentType # yield ExcerptType( # body_template="payment_reminder.body.html", # content_type=ContentType.objects.get_for_model( # dd.resolve_model('contacts.Partner')), # **dd.str2kw('name', _("Payment reminder"))) yield ExcerptType( template="payment_reminder.weasy.html", build_method='weasy2pdf', content_type=ContentType.objects.get_for_model( dd.resolve_model('contacts.Partner')), **dd.str2kw('name', _("Payment reminder"))) yield payment_terms()
def get_slave_summary(self, obj, ar): sar = self.request(master_instance=obj) elems = [] # n = sar.get_total_count() # if n == 0: # elems += [_("Not member of any household."), E.br()] # else: items = [] for m in sar.data_iterator: args = (unicode(m.role), _(" in "), ar.obj2html(m.household)) if m.primary: items.append(E.li(E.b("\u2611 ", *args))) else: btn = m.set_primary.as_button_elem( ar, "\u2610 ", style="text-decoration:none;") items.append(E.li(btn, *args)) if len(items) > 0: elems += [_("%s is") % obj] elems.append(E.ul(*items)) if False: elems += [ E.br(), ar.instance_action_button(obj.create_household)] else: elems += [E.br(), _("Create a household"), ' : '] Type = rt.modules.households.Type Person = dd.resolve_model(config.person_model) T = Person.get_default_table() ba = T.get_action_by_name('create_household') buttons = [] for t in Type.objects.all(): apv = dict(type=t, head=obj) sar = ar.spawn(ba, # master_instance=obj, selected_rows=[obj], action_param_values=apv) buttons.append(ar.href_to_request(sar, unicode(t))) elems += join_elems(buttons, sep=' / ') return E.div(*elems)
def get_slave_summary(self, obj, ar): sar = self.request(master_instance=obj) elems = [] # n = sar.get_total_count() # if n == 0: # elems += [_("Not member of any household."), E.br()] # else: items = [] for m in sar.data_iterator: args = (unicode(m.role), _(" in "), ar.obj2html(m.household)) if m.primary: items.append(E.li(E.b("\u2611 ", *args))) else: btn = m.set_primary.as_button_elem( ar, "\u2610 ", style="text-decoration:none;") items.append(E.li(btn, *args)) if len(items) > 0: elems += [_("%s is") % obj] elems.append(E.ul(*items)) if False: elems += [ E.br(), ar.instance_action_button(obj.create_household)] else: elems += [E.br(), _("Create a household"), ' : '] Type = rt.modules.households.Type Person = dd.resolve_model(config.person_model) T = Person.get_default_table() ba = T.get_action_by_name('create_household') buttons = [] for t in Type.objects.all(): apv = dict(type=t, head=obj) sar = ar.spawn(ba, # master_instance=obj, action_param_values=apv) buttons.append(ar.href_to_request(sar, unicode(t))) elems += join_elems(buttons, sep=' / ') return E.div(*elems)
def handle(self, *args, **options): dbname = settings.DATABASES['default']['NAME'] if options.get('interactive'): if not confirm("This is going to GARBLE your database (%s).\n" "Are you sure (y/n) ?" % dbname): raise CommandError("User abort.") def build_dist(k): k = k.upper() if k == 'BE': return BelgianDistribution() if k == 'EE': return EstonianDistribution() raise CommandError("Invalid distribution key %r." % k) dist = build_dist(options.get('distribution')) User = dd.resolve_model(settings.SITE.user_model) Person = rt.models.contacts.Person for p in Person.objects.order_by('id'): if User.objects.filter(partner=p).count() > 0: # users keep their original name pass else: p.last_name = dist.LAST_NAMES.pop() if p.gender == dd.Genders.male: p.first_name = dist.MALES.pop() dist.FEMALES.pop() else: p.first_name = dist.FEMALES.pop() dist.MALES.pop() p.name = join_words(p.last_name, p.first_name) dist.before_save(p) p.save() dblogger.info(p.get_address(', '))
def worker_choices(cls, order): worker = dd.resolve_model(worker_model) return worker.objects.all()
from lino_xl.lib.cal.choicelists import DurationUnits # from lino_xl.lib.cal.utils import WORKDAYS isip = dd.resolve_app('isip') jobs = dd.resolve_app('jobs') pcsw = dd.resolve_app('pcsw') uploads = dd.resolve_app('uploads') contacts = dd.resolve_app('contacts') users = dd.resolve_app('users') countries = dd.resolve_app('countries') reception = dd.resolve_app('reception') cal = dd.resolve_app('cal') cv = dd.resolve_app('cv') Company = dd.resolve_model('contacts.Company') #~ dblogger.info('Loading') #~ def coaching_stories(state): CT_GSS = 1 CT_INTEG = 2 CT_OTHER = 3 COACHING_STORIES = dict() COACHING_STORIES[pcsw.ClientStates.former] = Cycler( [ (-1000, -500, True, CT_GSS) ], [ (None, -60, True, CT_INTEG) ], [ (-900, -430, False, CT_GSS),
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()
An extension of :mod:`timloader <lino_xl.lib.tim2lino.timloader>`. """ from __future__ import unicode_literals import datetime from django.conf import settings from lino.utils import mti from lino.api import dd, rt from .timloader1 import TimLoader Person = dd.resolve_model("contacts.Person") Company = dd.resolve_model("contacts.Company") Partner = dd.resolve_model("contacts.Partner") RoleType = dd.resolve_model("contacts.RoleType") Role = dd.resolve_model("contacts.Role") Household = dd.resolve_model('households.Household') Product = dd.resolve_model('products.Product') List = dd.resolve_model('lists.List') Member = dd.resolve_model('lists.Member') households_Member = dd.resolve_model('households.Member') Account = dd.resolve_model('accounts.Account') tickets = dd.resolve_app('tickets') working = dd.resolve_app('working') def ticket_state(idpns):
## Copyright 2013 Luc Saffre ## This file is part of the Lino project. from lino.api import dd, rt from django.conf import settings from lino.utils import Cycler Entry = dd.resolve_model('matrix_tutorial.Entry') EntryType = dd.resolve_model('matrix_tutorial.EntryType') Company = dd.resolve_model('contacts.Company') LOREM_IPSUM = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." def objects(): yield EntryType(name="Consultation") yield EntryType(name="Evaluation") yield EntryType(name="Test") yield EntryType(name="Analysis") yield EntryType(name="Observation") TYPES = Cycler(EntryType.objects.all()) COMPANIES = Cycler(Company.objects.all()) USERS = Cycler(settings.SITE.user_model.objects.all()) SUBJECTS = Cycler(LOREM_IPSUM.split()) for i in range(200): d = settings.SITE.demo_date(-i) e = Entry(date=d, company=COMPANIES.pop(),
from django.db.utils import DatabaseError from django.db import models import lino from lino.api import dd, rt from lino.utils import confirm, iif from lino.utils import dblogger from lino.utils.daemoncommand import DaemonCommand from ...utils import aware, dt2kw, setkw Place = dd.resolve_model('cal.Place') Calendar = dd.resolve_model('cal.Calendar') Event = dd.resolve_model('cal.Event') RecurrenceSet = dd.resolve_model('cal.RecurrenceSet') # dblogger.log_changes(REQUEST,obj) def prettyPrint(obj): s = StringIO() out = sys.stdout sys.stdout = s obj.prettyPrint() sys.stdout = out return s.getvalue()
def create_pupil_choice(self, text): Pupil = dd.resolve_model(pupil_model) return Pupil.create_from_choice(text)
# -*- coding: UTF-8 -*- from __future__ import unicode_literals from lino.api import dd, rt Product = dd.resolve_model('babel_tutorial.Product') def P(en, de, fr, cat): return Product( category=cat, **dd.babel_values('name', en=en, de=de, fr=fr)) def objects(): yield P("Chair", "Stuhl", "Chaise", '03') yield P("Table", "Tisch", "Table", '03') yield P("Monitor", "Bildschirm", "Écran", '01') yield P("Mouse", "Maus", "Souris", '03') yield P("Keyboard", "Tastatur", "Clavier", '03') yield P("Consultation", "Beratung", "Consultation", '02')
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)
# -*- coding: UTF-8 -*- # Copyright 2013-2014 Luc Saffre # License: BSD (see file COPYING for details) """ """ from __future__ import unicode_literals from lino.api import dd, rt from lino.utils import i2d Country = dd.resolve_model("countries.Country") City = dd.resolve_model("countries.Place") Type = dd.resolve_model("events.Type") Event = dd.resolve_model("events.Event") Stage = dd.resolve_model("events.Stage") Place = dd.resolve_model("events.Place") Feature = dd.resolve_model("events.Feature") from lino.modlib.countries.models import PlaceTypes def get_city(name): flt = rt.lookup_filter('name', name) try: return City.objects.exclude( type__in=[PlaceTypes.county, PlaceTypes.province]).get(flt) except City.DoesNotExist: raise Exception("No city named %r" % name) def event(type, date, name, name_nl, name_fr, *features, **kw):
# Copyright 2013-2016 Luc Saffre # License: BSD (see file COPYING for details) """This is Luc's personal collection of Belgian vocabulary. It is not complete enough to be of real benefit, but publicly available at http://belref.lino-framework.org/ """ from __future__ import unicode_literals import re abbrRE = re.compile("^(.*)\s*\((.*)\)\s*", re.DOTALL) from lino.api import dd Concept = dd.resolve_model('concepts.Concept') Link = dd.resolve_model('concepts.Link') from lino_xl.lib.concepts.models import LinkTypes def C(en, de, fr='', nl='', jargon=None, obsoletes=None, **kw): texts = dict(en=en, de=de, fr=fr, nl=nl) name = dict() abbr = dict() for lang in 'en', 'de', 'fr', 'nl': t = texts.get(lang) if t: mo = abbrRE.match(t) if mo: abbr[lang] = mo.group(1).strip()
# -*- coding: UTF-8 -*- from __future__ import unicode_literals from lino.api import dd Product = dd.resolve_model('mldbc.Product') def P(en, de, fr, cat, price): return Product(price=price, category=cat, **dd.babel_values('name', en=en, de=de, fr=fr)) def objects(): yield P("Chair", "Stuhl", "Chaise", '03', '29.95') yield P("Table", "Tisch", "Table", '03', '89.95') # doctests fail with non-ascii text, so we need to cheat: # yield P("Monitor", "Bildschirm", "Écran", '01', '19.95') yield P("Monitor", "Bildschirm", "Ecran", '01', '19.95') yield P("Mouse", "Maus", "Souris", '03', '2.95') yield P("Keyboard", "Tastatur", "Clavier", '03', '4.95') yield P("Consultation", "Beratung", "Consultation", '02', '59.95')
def pupil_choices(cls, course): Pupil = dd.resolve_model(pupil_model) return Pupil.objects.all()
from django.utils import translation # from lino.utils import mti from lino.utils.instantiator import create_row from lino.utils.instantiator import create from lino.utils.mti import mtichild, insert_child from lino.core.gfks import gfk2lookup from lino.api import dd, rt, _ from .spzloader import TimLoader from .timloader1 import convert_gender from lino_xl.lib.tim2lino import timloader1 Person = dd.resolve_model("contacts.Person") # Company = dd.resolve_model("contacts.Company") RoleType = dd.resolve_model("contacts.RoleType") Role = dd.resolve_model("contacts.Role") Household = rt.models.households.Household Product = dd.resolve_model('products.Product') # List = dd.resolve_model('lists.List') Client = rt.models.tera.Client ClientContact = rt.models.clients.ClientContact Course = rt.models.courses.Course Line = rt.models.courses.Line CourseAreas = rt.models.courses.CourseAreas Enrolment = rt.models.courses.Enrolment EnrolmentStates = rt.models.courses.EnrolmentStates Country = rt.models.countries.Country hc_Plan = rt.models.healthcare.Plan
def type_choices(self, upload_area): M = dd.resolve_model('uploads.UploadType') # logger.info("20140430 type_choices %s", upload_area) if upload_area is None: return M.objects.all() return M.objects.filter(upload_area=upload_area)
from lino.utils.instantiator import Instantiator, i2d from lino.utils import Cycler from django.utils.translation import ugettext_lazy as _ from django.conf import settings from lino.utils import date_offset from lino.api import dd, rt DEMO_REF_DATE = i2d(20140101) cal = dd.resolve_app('cal') courses = dd.resolve_app('courses') rooms = dd.resolve_app('rooms') Booking = dd.resolve_model('rooms.Booking') Room = dd.resolve_model('cal.Room') Event = dd.resolve_model('cal.Event') Partner = dd.resolve_model('contacts.Partner') Company = dd.resolve_model('contacts.Company') Teacher = dd.resolve_model('courses.Teacher') TeacherType = dd.resolve_model('courses.TeacherType') Pupil = dd.resolve_model('courses.Pupil') PupilType = dd.resolve_model('courses.PupilType') Enrolment = dd.resolve_model('courses.Enrolment') Course = dd.resolve_model('courses.Course') Product = dd.resolve_model('products.Product') CourseStates = courses.CourseStates EnrolmentStates = courses.EnrolmentStates BookingStates = rooms.BookingStates Calendar = dd.resolve_model('cal.Calendar')
from lino.api import dd, rt User = dd.resolve_model('users.User') def objects(): yield User(username='******', first_name='Piet', last_name='Bommel', email='*****@*****.**', is_staff=True) yield User(username='******', first_name='Jean', last_name='Dupond', email='*****@*****.**', is_staff=True)
def objects(): Person = dd.resolve_model(dd.apps.humanlinks.person_model) Link = rt.modules.humanlinks.Link LinkTypes = rt.modules.humanlinks.LinkTypes ar = rt.login() households = dd.resolve_app('households') if households: married = households.Type.objects.get( **dd.str2kw('name', _("Married"))) divorced = households.Type.objects.get( **dd.str2kw('name', _("Divorced"))) ig = InstanceGenerator() ig.add_instantiator( 'person', Person, 'first_name last_name gender birth_date') ig.add_instantiator( 'link', Link, 'parent child type') NAME1 = "Frisch" opa = ig.person("Hubert", NAME1, 'M', '1933-07-21') oma = ig.person("Gaby", "Frogemuth", 'F', '1934-08-04') P = ig.person("Paul", NAME1, 'M', '1967-06-19') L = ig.person("Ludwig", NAME1, 'M', '1968-06-01') A = ig.person("Alice", NAME1, 'F', '1969-12-19') B = ig.person("Bernd", NAME1, 'M', '1971-09-10') P1 = ig.person("Paula", "Einzig", 'F', '1968-12-19') P1A = ig.person("Peter", NAME1, 'M', '1987-06-19') P2 = ig.person("Petra", "Zweith", 'F', '1968-12-19') P2A = ig.person("Philippe", NAME1, 'M', '1997-06-19') P2B = ig.person("Clara", NAME1, 'F', '1999-06-19') P3 = ig.person("Dora", "Drosson", 'F', '1971-12-19') P3A = ig.person("Dennis", NAME1, 'M', '2001-06-19') L1 = ig.person("Laura", "Loslever", 'F', '1968-04-27') L1A = ig.person("Melba", NAME1, 'F', '2002-04-05') L1B = ig.person("Irma", NAME1, 'F', '2008-03-24') yield ig.flush() ig.link(opa, oma, LinkTypes.spouse) for i in (P, L, A, B): ig.link(opa, i, LinkTypes.parent) ig.link(oma, i, LinkTypes.parent) ig.link(P, P1A, LinkTypes.parent) ig.link(P1, P1A, LinkTypes.parent) ig.link(P, P2A, LinkTypes.parent) ig.link(P2, P2A, LinkTypes.parent) ig.link(P, P2B, LinkTypes.parent) ig.link(P2, P2B, LinkTypes.parent) ig.link(P, P3A, LinkTypes.parent) ig.link(P3, P3A, LinkTypes.parent) ig.link(P, P2, LinkTypes.spouse) ig.link(L, L1, LinkTypes.spouse) for i in (L1A, L1B): ig.link(L, i, LinkTypes.parent) ig.link(L1, i, LinkTypes.parent) yield ig.flush() if households: households.Household.create_household(ar, opa, oma, married) households.Household.create_household(ar, P, P1, divorced) hh = households.Household.create_household(ar, P, P2, married) hh.members_by_role('head')[0].set_primary(ar) hh.members_by_role('partner')[0].set_primary(ar) households.Household.create_household(ar, L, L1, married) A = ig.person("Albert", "Adam", 'M', '1973-07-21') B = ig.person("Bruno", "Braun", 'M', '1973-07-22') E = ig.person("Eveline", "Evrard", 'F', '1974-08-21') F = ig.person("Françoise", "Freisen", 'F', '1974-08-22') I = ig.person("Ilja", "Adam", 'M', '1994-08-22') J = ig.person("Jan", "Braun", 'M', '1996-08-22') K = ig.person("Kevin", "Braun", 'M', '1998-08-22') L = ig.person("Lars", "Braun", 'M', '1998-08-22') M = ig.person("Monique", "Braun", 'F', '2000-08-22') N = ig.person("Noémie", "Adam", 'F', '2002-08-22') O = ig.person("Odette", "Adam", 'F', '2004-08-22') P = ig.person("Pascale", "Adam", 'F', '2004-08-22') yield ig.flush() ig.link(A, I, LinkTypes.parent) ig.link(A, N, LinkTypes.parent) ig.link(A, O, LinkTypes.parent) ig.link(A, P, LinkTypes.parent) ig.link(B, J, LinkTypes.parent) ig.link(B, K, LinkTypes.parent) ig.link(B, L, LinkTypes.parent) ig.link(B, M, LinkTypes.parent) ig.link(E, I, LinkTypes.parent) ig.link(E, J, LinkTypes.parent) ig.link(E, K, LinkTypes.parent) ig.link(E, L, LinkTypes.parent) ig.link(F, M, LinkTypes.parent) ig.link(F, N, LinkTypes.parent) ig.link(F, O, LinkTypes.parent) ig.link(F, P, LinkTypes.parent) ig.link(A, F, LinkTypes.spouse) ig.link(B, E, LinkTypes.spouse) yield ig.flush() if households: households.Household.create_household(ar, A, E, married) households.Household.create_household(ar, A, F, divorced) households.Household.create_household(ar, B, E, divorced) households.Household.create_household(ar, B, F, married)
def type_choices(self, upload_area): M = dd.resolve_model('uploads.UploadType') logger.info("20140430 type_choices %s", upload_area) if upload_area is None: return M.objects.all() return M.objects.filter(upload_area=upload_area)
logger = logging.getLogger(__name__) import datetime from dateutil.relativedelta import relativedelta ONE_DAY = relativedelta(days=1) DEMO_DURATION = relativedelta(hours=1, minutes=30) from django.conf import settings from django.utils.translation import ugettext as _ from lino.utils import Cycler from lino.api import dd, rt cal = dd.resolve_app('cal') Event = dd.resolve_model('cal.Event') EventType = dd.resolve_model('cal.EventType') # Subscription = rt.modules.cal.Subscription Calendar = dd.resolve_model('cal.Calendar') # def subscribe_all(): # for u in settings.SITE.user_model.objects.exclude(profile=''): # for obj in Calendar.objects.all(): # obj = Subscription(user=u, calendar=obj) # yield obj def objects(): #~ if settings.SITE.project_model:
def get_for_model(cls, model): "Return the primary ExcerptType for the given model." ct = ContentType.objects.get_for_model(dd.resolve_model(model)) return cls.objects.get(primary=True, content_type=ct)
def test01(self): """ Tests some basic funtionality. """ self.assertEqual(settings.MIDDLEWARE_CLASSES, ('django.middleware.common.CommonMiddleware', 'django.middleware.locale.LocaleMiddleware', 'lino.core.auth.RemoteUserMiddleware', 'lino.utils.ajax.AjaxExceptionResponse')) Person = dd.resolve_model("contacts.Person") ee = create_and_get('countries.Country', isocode='EE', **dd.babelkw( 'name', de="Estland", fr='Estonie', en="Estonia", nl='Estland', et='Eesti', )) be = create_and_get('countries.Country', isocode='BE', **dd.babelkw( 'name', de="Belgien", fr='Belgique', en="Belgium", nl='Belgie', et='Belgia', )) PlaceTypes = rt.modules.countries.PlaceTypes eupen = create_and_get('countries.Place', name=u'Eupen', country=be, zip_code='4700') vigala = create_and_get('countries.Place', name='Vigala', country=ee, type=PlaceTypes.municipality) luc = create_and_get(Person, first_name='Luc', last_name='Saffre', gender=Genders.male, country=ee, street='Uus', street_no='1', addr2=u'Vana-Vigala küla', city=vigala, zip_code='78003') settings.SITE.uppercase_last_name = True """If the following tests raise a "DoesNotExist: Company matching query does not exist" then this may come because Site._site_config has been filled before the database switched from the real db to test db. and not properly reset. """ with translation.override('en'): self.assertEquals( luc.address, u'''\ Mr Luc SAFFRE Uus 1 Vana-Vigala küla 78003 Vigala vald Estonia''') with translation.override('de'): self.assertEquals( luc.address, u'''\ Herrn Luc SAFFRE Uus 1 Vana-Vigala küla 78003 Vigala vald Estland''') self.assertEquals( luc.address_html, '''\ <p>Herrn Luc SAFFRE<br />Uus 1<br />Vana-Vigala küla<br />78003 Vigala vald<br />Estland</p>''' ) # "new" or "full" style is when the database knows the # geographic hierarchy. We then just select "Vana-Vigala" as # the "City". vana_vigala = create_and_get('countries.Place', name='Vana-Vigala', country=ee, parent=vigala, type=PlaceTypes.village, zip_code='78003') meeli = create_and_get(Person, first_name='Meeli', last_name='Mets', gender=Genders.female, country=ee, street='Hirvepargi', street_no='123', city=vana_vigala) with translation.override('en'): self.assertEquals( meeli.address, u'''\ Mrs Meeli METS Hirvepargi 123 Vana-Vigala küla 78003 Vigala vald Estonia''') u = create_and_get(settings.SITE.user_model, username='******', language='', profile=UserProfiles.admin) """ disable SITE.is_imported_partner() otherwise disabled_fields may contain more than just the 'id' field. """ save_iip = settings.SITE.is_imported_partner def f(obj): return False settings.SITE.is_imported_partner = f """ Note that we must specify the language both in the user and in HTTP_ACCEPT_LANGUAGE because... """ luc = Person.objects.get(name__exact="Saffre Luc") self.assertEqual(luc.pk, contacts.PARTNER_NUMBERS_START_AT) url = settings.SITE.buildurl('api', 'contacts', 'Person', '%d?query=&an=detail&fmt=json' % luc.pk) #~ url = '/api/contacts/Person/%d?query=&an=detail&fmt=json' % luc.pk if settings.SITE.get_language_info('en'): u.language = 'en' u.save() response = self.client.get(url, REMOTE_USER='******', HTTP_ACCEPT_LANGUAGE='en') result = self.check_json_result( response, 'navinfo disable_delete data id title') self.assertEqual(result['data']['country'], "Estonia") self.assertEqual(result['data']['gender'], "Male") if settings.SITE.get_language_info('de'): u.language = 'de' u.save() response = self.client.get(url, REMOTE_USER='******', HTTP_ACCEPT_LANGUAGE='de') result = self.check_json_result( response, 'navinfo disable_delete data id title') self.assertEqual(result['data']['country'], "Estland") self.assertEqual(result['data']['gender'], u"Männlich") #~ self.assertEqual(result['data']['disabled_fields'],['contact_ptr_id','id']) #~ self.assertEqual(result['data']['disabled_fields'],['id']) df = result['data']['disabled_fields'] self.assertEqual(df['id'], True) if settings.SITE.get_language_info('fr'): u.language = 'fr' u.save() response = self.client.get(url, REMOTE_USER='******', HTTP_ACCEPT_LANGUAGE='fr') result = self.check_json_result( response, 'navinfo disable_delete data id title') self.assertEqual(result['data']['country'], "Estonie") self.assertEqual(result['data']['gender'], u"Masculin") #~ u.language = lang #~ u.save() # restore is_imported_partner method settings.SITE.is_imported_partner = save_iip #~ def test03(self): """ Test the following situation: - User 1 opens the :menuselection:`Configure --> System--> System Parameters` dialog - User 2 creates a new Person (which increases next_partner_id) - User 1 clicks on `Save`. `next_partner_id` may not get overwritten """ # User 1 SiteConfigs = settings.SITE.modules.system.SiteConfigs elem = SiteConfigs.get_row_by_pk(None, settings.SITE.config_id) self.assertEqual(elem.next_partner_id, contacts.PARTNER_NUMBERS_START_AT + 2) elem.next_partner_id = 12345 elem.full_clean() elem.save() #~ print "saved" self.assertEqual(settings.SITE.site_config.next_partner_id, 12345) john = create_and_get(Person, first_name='John', last_name='Smith') self.assertEqual(john.pk, 12345) self.assertEqual(elem.next_partner_id, 12346) self.assertEqual(settings.SITE.site_config.next_partner_id, 12346)
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
def get_worker_choices(self): worker = dd.resolve_model(worker_model) return worker.objects.all()
#import time #from datetime import date #from dateutil import parser as dateparser #from lino.projects.finan import models as finan #~ import decimal from decimal import Decimal from django.conf import settings from lino.api import dd, rt from lino.utils import Cycler from lino.utils.instantiator import Instantiator, i2d from lino.core.utils import resolve_model partner_model = settings.SITE.partners_app_label + '.Partner' Partner = dd.resolve_model(partner_model) REQUEST = None def objects(): ledger = dd.resolve_app('ledger') finan = dd.resolve_app('finan') #~ partners = dd.resolve_app('partners') #~ contacts = dd.resolve_app('contacts') MODEL = finan.BankStatement vt = ledger.VoucherTypes.get_for_model(MODEL) JOURNALS = Cycler(vt.get_journals()) PARTNERS = Cycler(Partner.objects.order_by('name'))
def objects(): yield site_company_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='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, phone="+32 87123456", email="*****@*****.**") yield person('Annette', 'Arens', gender=dd.Genders.female, phone="+32 87123457", email="*****@*****.**") 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.models.contacts.Person.objects.filter(city=eupen): p.street = STREETS.pop() p.stret_no = str(nr) p.save() nr += 1
""" from __future__ import unicode_literals import datetime from builtins import str # from lino.utils import mti from lino.api import dd, rt, _ from lino.utils.instantiator import create from django.core.exceptions import ValidationError from .timloader1 import TimLoader Person = dd.resolve_model("contacts.Person") Company = dd.resolve_model("contacts.Company") RoleType = dd.resolve_model("contacts.RoleType") Role = dd.resolve_model("contacts.Role") Household = rt.models.households.Household Product = dd.resolve_model('products.Product') # List = dd.resolve_model('lists.List') Client = rt.models.tera.Client Course = rt.models.courses.Course Line = rt.models.courses.Line CourseAreas = rt.models.courses.CourseAreas Course = rt.models.courses.Course Enrolment = rt.models.courses.Enrolment Event = rt.models.cal.Event Account = dd.resolve_model('ledger.Account')