def skills_objects(): "was previously in skills.fixtures.demo2" Skill = rt.models.skills.Skill Competence = rt.models.skills.Competence Demand = rt.models.skills.Demand # Ticket = rt.models.tickets.Ticket User = rt.models.users.User yield named(Skill, _('Psychotherapy')) yield named(Skill, _('Psychiatry')) SKILLS = Cycler(Skill.objects.all()) END_USERS = Cycler(dd.plugins.skills.end_user_model.objects.all()) i = 0 for j in range(2): for u in User.objects.all(): i += 1 yield Competence(user=u, faculty=SKILLS.pop()) if i % 2: yield Competence(user=u, faculty=SKILLS.pop()) if i % 3: yield Competence( user=u, faculty=SKILLS.pop(), end_user=END_USERS.pop()) for i, t in enumerate( dd.plugins.skills.demander_model.objects.all()): yield Demand(demander=t, skill=SKILLS.pop()) if i % 3: yield Demand(demander=t, skill=SKILLS.pop())
def objects(): AddressTypes = rt.models.addresses.AddressTypes Address = rt.models.addresses.Address # Partner = rt.models.contacts.Partner Partner = dd.plugins.addresses.partner_model Place = rt.models.countries.Place eupen = Place.objects.get(name__exact='Eupen') STREETS = Cycler(streets_of_eupen()) TYPES = Cycler(AddressTypes.objects()) def create_addr_from_owner(o, **kw): kw.update(partner=o) for k in Address.ADDRESS_FIELDS: kw[k] = getattr(o, k) return Address(**kw) nr = 1 for p in Partner.objects.filter(city=eupen): if nr % 3: yield create_addr_from_owner( p, primary=True, address_type=AddressTypes.official) kw = dict(partner=p) kw.update(address_type=TYPES.pop()) kw.update(street=STREETS.pop()) kw.update(street_no=str(nr % 200)) yield Address(**kw) nr += 1
def objects(): last_names = demonames.LAST_NAMES_BELGIUM male_first_names = demonames.MALE_FIRST_NAMES_FRANCE female_first_names = demonames.FEMALE_FIRST_NAMES_FRANCE Person = dd.resolve_model("contacts.Person") Place = dd.resolve_model('countries.Place') CITIES = Cycler( Place.objects.filter(country_id='BE', zip_code__startswith='40')) STREETS = demonames.streets_of_liege() common = dict(language='fr', country_id='BE') for i in range(100): yield Person( first_name=male_first_names.pop(), last_name=last_names.pop(), gender=mixins.Genders.male, city=CITIES.pop(), street=STREETS.pop(), **common ) yield Person( first_name=female_first_names.pop(), last_name=last_names.pop(), gender=mixins.Genders.female, city=CITIES.pop(), street=STREETS.pop(), **common )
def objects(): CLIENTS = Cycler(pcsw.Client.objects.filter( client_state=pcsw.ClientStates.coached)) COMPANIES = Cycler(contacts.Company.objects.all()) for i in range(10): yield create(CLIENTS.pop(), COMPANIES.pop(), dd.demo_date(i), i % 2)
def objects(): PAYMENT_TERMS = Cycler(rt.models.ledger.PaymentTerm.objects.all()) for obj in rt.models.contacts.Partner.objects.all(): obj.payment_term = PAYMENT_TERMS.pop() yield obj
def objects(): Journal = rt.models.ledger.Journal Company = rt.models.contacts.Company Declaration = rt.models.bevats.Declaration # DeclarationFields = rt.models.declarations.DeclarationFields # Account = rt.models.accounts.Account # m = import_module(dd.plugins.declarations.country_module) # from lino_xl.lib.declarations.be import demo_objects yield demo_objects() office = Company( name="Mehrwertsteuer-Kontrollamt Eupen", street="Vervierser Str. 8", country_id="BE", zip_code="4700") yield office USERS = Cycler(settings.SITE.user_model.objects.all()) JOURNAL = Journal.objects.get(ref=rt.models.bevats.DEMO_JOURNAL_NAME) # date = datetime.date(dd.plugins.ledger.start_year, 1, 4) date = datetime.date(dd.plugins.ledger.start_year, 1, 31) end_date = settings.SITE.demo_date(-30) while date < end_date: dcl = Declaration( journal=JOURNAL, user=USERS.pop(), partner=office, entry_date=date) yield dcl dcl.register(REQUEST) dcl.save() date += AMONTH
def objects(): REQUEST = settings.SITE.login() Journal = rt.models.ledger.Journal Company = rt.models.contacts.Company Declaration = rt.models.eevat.Declaration office = Company( name="Maksu- ja Tolliamet", street="Lõõtsa 8a", country_id="EE", zip_code="15176", city="Tallinn") yield office USERS = Cycler(settings.SITE.user_model.objects.all()) JOURNAL = Journal.objects.get(ref=rt.models.eevat.DEMO_JOURNAL_NAME) date = datetime.date(dd.plugins.ledger.start_year, 1, 4) end_date = settings.SITE.demo_date(-30) while date < end_date: dcl = Declaration( journal=JOURNAL, user=USERS.pop(), partner=office, entry_date=date, voucher_date=date) yield dcl dcl.register(REQUEST) dcl.save() date += AMONTH
def objects(): Journal = rt.models.ledger.Journal Company = rt.models.contacts.Company Declaration = rt.models.bevats.Declaration # m = import_module(dd.plugins.declarations.country_module) # from lino_xl.lib.declarations.be import demo_objects # yield demo_objects() office = Company(name="Mehrwertsteuer-Kontrollamt Eupen", street="Vervierser Str. 8", country_id="BE", zip_code="4700") yield office USERS = Cycler(settings.SITE.user_model.objects.all()) JOURNAL = Journal.objects.get(ref=rt.models.bevats.DEMO_JOURNAL_NAME) # date = datetime.date(dd.plugins.ledger.start_year, 1, 4) date = datetime.date(dd.plugins.ledger.start_year, 1, 31) end_date = settings.SITE.demo_date(-30) while date < end_date: dcl = Declaration(journal=JOURNAL, user=USERS.pop(), partner=office, entry_date=date) yield dcl dcl.register(REQUEST) dcl.save() date += AMONTH
def objects(): yield sales.InvoicingMode(**babel_values('name',en='Default',de=u"Standard",fr=u"Standard")) if ledger: Invoice = dd.resolve_model('sales.Invoice') InvoiceItem = dd.resolve_model('sales.InvoiceItem') vt = ledger.VoucherTypes.get_for_model(Invoice) JOURNALS = Cycler(vt.get_journals()) PARTNERS = Cycler(Partner.objects.all()) USERS = Cycler(settings.SITE.user_model.objects.all()) PRODUCTS = Cycler(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(-30+2*i)) yield invoice for j in range(ITEMCOUNT.pop()): item = InvoiceItem(voucher=invoice, #~ account=jnl.get_allowed_accounts()[0], product=PRODUCTS.pop(), ) item.product_changed(REQUEST) item.before_ui_save(REQUEST) #~ if item.total_incl: #~ print "20121208 ok", item #~ else: #~ if item.product.price: #~ raise Exception("20121208") 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 __init__(self): super(EstonianDistribution, self).__init__() Country = rt.modules.countries.Country Place = rt.modules.countries.Place PlaceTypes = rt.modules.countries.PlaceTypes self.tallinn = Place.objects.get(type=PlaceTypes.town, name="Tallinn") self.eesti = Country.objects.get(isocode="EE") self.streets = Cycler(self.get_streets())
def objects(): ses = rt.login() Client = rt.modules.pcsw.Client CLIENTS = Cycler(Client.objects.all()) for obj in lino_objects(): if obj.__class__.__name__ == "Event": if obj.event_type.invite_client: obj.project = CLIENTS.pop() yield obj obj.update_guests.run_from_code(ses)
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
def objects(): Account = rt.models.ana.Account # Group = rt.models.ana.Group GenAccount = rt.models.ledger.Account def x(ref, name): return babeld(Account, name, ref=ref) # if len(ref) == 4: # kwargs = dict(ref=ref) # ref = ref[:-1] # while len(ref): # try: # grp = Group.get_by_ref(ref) # kwargs.update(group=grp) # break # except Group.DoesNotExist: # pass # ref = ref[:-1] # return babeld(Account, name, **kwargs) # else: # return babeld(Group, name, ref=ref) yield x("1", _("Operation costs")) yield x("1100", _("Wages")) yield x("1200", _("Transport")) yield x("1300", _("Training")) yield x("1400", _("Other costs")) yield x("2", _("Administrative costs")) yield x("2100", _("Secretary wages")) yield x("2110", _("Manager wages")) yield x("2200", _("Transport")) yield x("2300", _("Training")) yield x("3", _("Investments")) yield x("3000", _("Investment")) yield x("4", _("Project 1")) yield x("4100", _("Wages")) yield x("4200", _("Transport")) yield x("4300", _("Training")) yield x("5", _("Project 2")) yield x("5100", _("Wages")) yield x("5200", _("Transport")) yield x("5300", _("Other costs")) ANA_ACCS = Cycler(Account.get_usable_items().order_by('ref')) qs = GenAccount.objects.filter(needs_ana=True).order_by('ref') for i, ga in enumerate(qs): if (i+1) % 3: ga.ana_account = ANA_ACCS.pop() ga.full_clean() ga.save()
def objects(): Account = rt.models.ana.Account # Group = rt.models.ana.Group GenAccount = rt.models.ledger.Account def x(ref, name): return babeld(Account, name, ref=ref) # if len(ref) == 4: # kwargs = dict(ref=ref) # ref = ref[:-1] # while len(ref): # try: # grp = Group.get_by_ref(ref) # kwargs.update(group=grp) # break # except Group.DoesNotExist: # pass # ref = ref[:-1] # return babeld(Account, name, **kwargs) # else: # return babeld(Group, name, ref=ref) yield x("1", _("Operation costs")) yield x("1100", _("Wages")) yield x("1200", _("Transport")) yield x("1300", _("Training")) yield x("1400", _("Other costs")) yield x("2", _("Administrative costs")) yield x("2100", _("Secretary wages")) yield x("2110", _("Manager wages")) yield x("2200", _("Transport")) yield x("2300", _("Training")) yield x("3", _("Investments")) yield x("3000", _("Investment")) yield x("4", _("Project 1")) yield x("4100", _("Wages")) yield x("4200", _("Transport")) yield x("4300", _("Training")) yield x("5", _("Project 2")) yield x("5100", _("Wages")) yield x("5200", _("Transport")) yield x("5300", _("Other costs")) ANA_ACCS = Cycler(Account.get_usable_items().order_by('ref')) qs = GenAccount.objects.filter(needs_ana=True).order_by('ref') for i, ga in enumerate(qs): if (i + 1) % 3: ga.ana_account = ANA_ACCS.pop() ga.full_clean() ga.save()
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 objects(): polls = rt.models.polls USERS = Cycler(settings.SITE.user_model.objects.all()) for p in polls.Poll.objects.exclude(questions_to_add=''): p.after_ui_save(None, None) yield polls.Response( poll=p, user=USERS.pop(), date=dd.today(), state=polls.ResponseStates.draft)
def objects(): polls = rt.models.polls USERS = Cycler(settings.SITE.user_model.objects.all()) for p in polls.Poll.objects.exclude(questions_to_add=''): p.after_ui_save(None, None) yield polls.Response(poll=p, user=USERS.pop(), date=dd.today(), state=polls.ResponseStates.draft)
def working_objects(): # was previously in working Company = rt.models.contacts.Company Vote = rt.models.votes.Vote SessionType = rt.models.working.SessionType Session = rt.models.working.Session Ticket = rt.models.tickets.Ticket User = rt.models.users.User UserTypes = rt.models.users.UserTypes # devs = (UserTypes.developer, UserTypes.senior) devs = [ p for p in UserTypes.items() if p.has_required_roles([Worker]) and not p.has_required_roles([SiteAdmin]) ] workers = User.objects.filter(user_type__in=devs) # WORKERS = Cycler(workers) TYPES = Cycler(SessionType.objects.all()) # TICKETS = Cycler(Ticket.objects.all()) DURATIONS = Cycler([12, 138, 90, 10, 122, 209, 37, 62, 179, 233, 5]) # every fourth ticket is unassigned and thus listed in # PublicTickets # for i, t in enumerate(Ticket.objects.exclude(private=True)): # for i, t in enumerate(Ticket.objects.all()): # if i % 4: # t.assigned_to = WORKERS.pop() # yield t for u in workers: VOTES = Cycler(Vote.objects.filter(user=u)) # TICKETS = Cycler(Ticket.objects.filter(assigned_to=u)) if len(VOTES) == 0: continue for offset in (0, -1, -3, -4): date = dd.demo_date(offset) worked = Duration() ts = datetime.datetime.combine(date, datetime.time(9, 0, 0)) for i in range(7): obj = Session(ticket=VOTES.pop().votable, session_type=TYPES.pop(), user=u) obj.set_datetime('start', ts) d = DURATIONS.pop() worked += d if offset < 0: ts = DurationUnits.minutes.add_duration(ts, d) obj.set_datetime('end', ts) yield obj if offset == 0 or worked > 8: break ServiceReport = rt.models.working.ServiceReport welket = Company.objects.get(name="welket") yield ServiceReport(start_date=dd.today(-90), interesting_for=welket)
def objects(): Obstacle = rt.modules.cv.Obstacle ObstacleType = rt.modules.cv.ObstacleType Client = rt.modules.pcsw.Client ClientStates = rt.modules.pcsw.ClientStates CLIENTS = Cycler(Client.objects.filter( client_state=ClientStates.coached)[10:15]) TYPES = Cycler(ObstacleType.objects.all()) for i in range(20): yield Obstacle(person=CLIENTS.pop(), type=TYPES.pop())
def objects(): last_names = demonames.LAST_NAMES_BELGIUM male_first_names = demonames.MALE_FIRST_NAMES_FRANCE female_first_names = demonames.FEMALE_FIRST_NAMES_FRANCE Person = rt.models.contacts.Person Place = rt.models.countries.Place CITIES = Cycler( Place.objects.filter(country_id='BE', zip_code__startswith='40')) STREETS = Cycler(demonames.streets_of_liege()) common = dict(language='fr', country_id='BE') for i in range(100): yield Person(first_name=male_first_names.pop(), last_name=last_names.pop(), gender=dd.Genders.male, city=CITIES.pop(), street=STREETS.pop(), **common) yield Person(first_name=female_first_names.pop(), last_name=last_names.pop(), gender=dd.Genders.female, city=CITIES.pop(), street=STREETS.pop(), **common)
def objects(): kwargs = dict(user_type=rt.models.users.UserTypes.user) # kwargs = dict() yield User(username="******", **kwargs) yield User(username="******", **kwargs) yield User(username="******", **kwargs) yield Company(name="AllTech inc.") yield Company(name="BestTech inc.") yield Company(name="CoolTech inc.") yield EntryType(designation="Consultation") yield EntryType(designation="Evaluation") yield EntryType(designation="Test") yield EntryType(designation="Analysis") yield EntryType(designation="Observation") TYPES = Cycler(EntryType.objects.all()) COMPANIES = Cycler(Company.objects.all()) USERS = Cycler(User.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(), user=USERS.pop(), subject=SUBJECTS.pop(), entry_type=TYPES.pop()) if i % 7: yield e
def objects(refs="PMO BNK"): Journal = rt.modules.ledger.Journal USERS = Cycler(settings.SITE.user_model.objects.all()) OFFSETS = Cycler(12, 20, 28) START_YEAR = dd.plugins.ledger.start_year end_date = settings.SITE.demo_date(-30) for ref in refs.split(): offset = OFFSETS.pop() date = datetime.date(START_YEAR, 1, 1) jnl = Journal.objects.get(ref=ref) sug_table = jnl.voucher_type.table_class.suggestions_table while date < end_date: voucher = jnl.create_voucher( user=USERS.pop(), voucher_date=date + delta(days=offset)) yield voucher # start action request for do_fill: ba = sug_table.get_action_by_name('do_fill') ar = ba.request(master_instance=voucher) # select all rows: suggestions = sug_table.request(voucher) ar.selected_rows = list(suggestions) # run the action: ar.run() # some items differ from what was suggested: if ref == 'BNK': for item in voucher.items.all(): pd = PAYMENT_DIFFS.pop() if pd: pd = Decimal(pd) item.amount += item.amount * pd if item.amount: item.save() else: item.delete() # if no items have been created (or if they have been # deleted by PAYMENT_DIFFS), remove the empty voucher: if voucher.items.count() == 0: voucher.delete() else: voucher.register(REQUEST) voucher.save() date += delta(months=1)
def objects(): pcsw = dd.resolve_app('pcsw') Place = resolve_model('countries.Place') Client = resolve_model('pcsw.Client') CourseContent = resolve_model('courses.CourseContent') CLIENTS = Cycler( Client.objects.filter(client_state=pcsw.ClientStates.coached)) eupen = Place.objects.get(name__exact='Eupen') courseprovider = Instantiator('courses.CourseProvider').build oikos = courseprovider(name=u"Oikos", city=eupen, country='BE') yield oikos # oikos.repairdata() kap = courseprovider(name=u"KAP", city=eupen, country='BE') yield kap # kap.repairdata() yield CourseContent(id=1, name=u"Deutsch") yield CourseContent(id=2, name=u"Französisch") COURSECONTENTS = Cycler(CourseContent.objects.all()) creq = Instantiator('courses.CourseRequest').build for i in range(20): yield creq( person=CLIENTS.pop(), content=COURSECONTENTS.pop(), date_submitted=settings.SITE.demo_date(-i * 2)) #~ yield creq(person=ulrike,content=1,date_submitted=settings.SITE.demo_date(-30)) #~ yield creq(person=tatjana,content=1,date_submitted=settings.SITE.demo_date(-30)) #~ yield creq(person=erna,content=2,date_submitted=settings.SITE.demo_date(-30)) offer = Instantiator('courses.CourseOffer').build course = Instantiator('courses.Course').build yield offer(provider=oikos, title=u"Deutsch für Anfänger", content=1) #~ yield course(offer=1,start_date=i2d(20110110)) yield course(offer=1, start_date=settings.SITE.demo_date(+30)) yield offer(provider=kap, title=u"Deutsch für Anfänger", content=1) #~ yield course(offer=2,start_date=i2d(20110117)) yield course(offer=2, start_date=settings.SITE.demo_date(+16)) yield offer(provider=kap, title=u"Français pour débutants", content=2) #~ yield course(offer=3,start_date=i2d(20110124)) yield course(offer=3, start_date=settings.SITE.demo_date(+16))
def objects(): Group = rt.models.groups.Group User = rt.models.users.User Membership = rt.models.groups.Membership Comment = rt.models.comments.Comment USERS = Cycler(User.objects.all()) for grp in Group.objects.all(): for i in range(2): u = USERS.pop() mbr = create_row(Membership, group=grp, user=u) yield mbr txt = _("Hi all, my name is {} and I am new here.").format(u) yield Comment(owner=grp, user=u, body=txt)
def working_objects(): # was previously in working Company = rt.models.contacts.Company # Vote = rt.models.votes.Vote SessionType = rt.models.working.SessionType Session = rt.models.working.Session Ticket = rt.models.tickets.Ticket User = rt.models.users.User UserTypes = rt.models.users.UserTypes # devs = (UserTypes.developer, UserTypes.senior) devs = [p for p in UserTypes.items() if p.has_required_roles([Worker]) and not p.has_required_roles([SiteAdmin])] workers = User.objects.filter(user_type__in=devs) WORKERS = Cycler(workers) TYPES = Cycler(SessionType.objects.all()) # TICKETS = Cycler(Ticket.objects.all()) DURATIONS = Cycler([12, 138, 90, 10, 122, 209, 37, 62, 179, 233, 5]) # every fourth ticket is unassigned and thus listed in # PublicTickets # for i, t in enumerate(Ticket.objects.exclude(private=True)): for i, t in enumerate(Ticket.objects.all()): if i % 4: t.assigned_to = WORKERS.pop() yield t for u in workers: # VOTES = Cycler(Vote.objects.filter(user=u)) # TICKETS = Cycler(Ticket.objects.filter(assigned_to=u)) TICKETS = Cycler(Ticket.objects.filter()) # if len(VOTES) == 0: # continue for offset in (0, -1, -3, -4): date = dd.demo_date(offset) worked = Duration() ts = datetime.datetime.combine(date, datetime.time(9, 0, 0)) for i in range(7): obj = Session( ticket=TICKETS.pop(), session_type=TYPES.pop(), user=u) obj.set_datetime('start', ts) d = DURATIONS.pop() worked += d if offset < 0: ts = DurationUnits.minutes.add_duration(ts, d) obj.set_datetime('end', ts) yield obj if offset == 0 or worked > 8: break ServiceReport = rt.models.working.ServiceReport welket = Company.objects.get(name="welket") yield ServiceReport( start_date=dd.today(-90), interesting_for=welket)
def objects(): Group = rt.models.groups.Group User = rt.models.users.User Membership = rt.models.groups.Membership Comment = rt.models.comments.Comment USERS = Cycler(User.objects.all()) for grp in Group.objects.all(): for i in range(2): u = USERS.pop() mbr = create_row(Membership, group=grp, user=u) yield mbr txt = _("Hi all, my name is {} and I am new here.").format( u) yield Comment(owner=grp, user=u, body=txt)
def objects(): PaymentTerm = rt.models.ledger.PaymentTerm Worker = dd.plugins.ledger.worker_model if Worker is not None: kwargs = {} kwargs['worker'] = Worker.objects.get(first_name="Robin") kwargs['ref'] = "robin" kwargs = dd.str2kw('name', _("Cash Robin"), **kwargs) yield PaymentTerm(**kwargs) PAYMENT_TERMS = Cycler(PaymentTerm.objects.all()) for obj in rt.models.contacts.Partner.objects.all(): obj.payment_term = PAYMENT_TERMS.pop() yield obj
def on_site_startup(self, kernel): from lino_xl.lib.beid.mixins import BeIdCardHolder from lino.core.utils import models_by_base super(Plugin, self).on_site_startup(kernel) if self.data_cache_dir is None: self.data_cache_dir = self.site.cache_dir.child('media').child( 'cache').child('beid') # self.data_cache_dir = join( # self.site.cache_dir, 'media', 'beidtmp') self.site.makedirs_if_missing(self.data_cache_dir) cmc = list(models_by_base(BeIdCardHolder, toplevel_only=True)) if len(cmc) > 1: msg = "There must be exactly one BeIdCardHolder model " \ "in your Site! You have {}. ".format(cmc) raise Exception(msg) if len(cmc) == 0: self.site.logger.warning( "You have lino_xl.lib.beid installed, " "but there is no implementation of BeIdCardHolder.") return self.holder_model = cmc[0] if self.urlhandler_prefix is not None: if not self.urlhandler_prefix.endswith("://"): msg = "Invalid urlhandler_prefix {} (must end with '://')" raise Exception(msg.format(self.urlhandler_prefix)) if self.simulate_eidreader_path is not None: self.SIMULATION_FILES = Cycler( self.simulate_eidreader_path.listdir()) return
def objects(): polls = rt.modules.polls five = polls.ChoiceSet.objects.get(name="1...5") ten = polls.ChoiceSet.objects.get(name="1...10") USERS = Cycler(settings.SITE.user_model.objects.all()) def poll(choiceset, title, details, questions): return polls.Poll(user=USERS.pop(), title=title.strip(), details=details.strip(), state=polls.PollStates.published, questions_to_add=questions, default_choiceset=choiceset) yield poll( ten, "Customer Satisfaction Survey", """ Please give your vote for each aspect of our company. """, """ =First section %(X)s has a good quality/price ratio. %(X)s is better than their concurrents. %(X)s has an attractive website. =Second section %(X)s values my money. I am proud to be a customer of %(X)s. I would recommend %(X)s to others. """ % dict(X="Polls Mentor Ltd.")) yield poll( five, "Participant feedback", """ Please give your vote for each aspect of the event. """, """ There was enough to eat. The stewards were nice and attentive. The participation fee was worth the money. Next time I will participate again. """ % dict(X="Lino Polly")) for p in polls.Poll.objects.exclude(questions_to_add=''): p.after_ui_save(None, None) yield polls.Response(poll=p, user=USERS.pop(), date=dd.today(), state=polls.ResponseStates.draft)
def objects(): Comment = rt.models.comments.Comment User = rt.models.users.User Comment.auto_touch = False TXT = Cycler([ styled, table, lorem, short_lorem, breaking, cond_comment, plain1, plain2 ]) for model in rt.models_by_base(Commentable): OWNERS = Cycler(model.objects.all()) if len(OWNERS) == 0: return now = datetime.datetime.combine(dd.today(-30), i2t(822)) if settings.USE_TZ: now = make_aware(now) DELTA = datetime.timedelta(minutes=34) owner = OWNERS.pop() for i in range(12): for u in User.objects.all(): ses = BaseRequest(user=u) # if owner.private: # txt = "<p>Confidential comment</p>" # else: # txt = TXT.pop() # txt = "Hackerish comment" obj = Comment(user=u, owner=owner, body=TXT.pop()) obj.on_create(ses) obj.after_ui_create(ses) obj.before_ui_save(ses) obj.modified = now yield obj now += DELTA if i % 3: owner = OWNERS.pop()
def objects(): JournalEntryItem = rt.models.finan.JournalEntryItem USERS = Cycler(settings.SITE.user_model.objects.all()) PARTNERS = Cycler(rt.models.contacts.Partner.objects.order_by("-id")) jnl = rt.models.ledger.Journal.objects.get(preliminary=True) voucher = jnl.create_voucher(user=USERS.pop(), entry_date=datetime.date( dd.plugins.ledger.start_year, 1, 1)) yield voucher # seqno = 0 def vi(ca, amount, **kwargs): # seqno += 1 kwargs.update(account=ca.get_object(), voucher=voucher) if amount > 0: kwargs.update(dc=jnl.dc) kwargs.update(amount=amount) else: kwargs.update(dc=not jnl.dc) kwargs.update(amount=-amount) return JournalEntryItem(**kwargs) # yield vi(CommonAccounts.net_income_loss, 100) yield vi(CommonAccounts.vat_due, 10) yield vi(CommonAccounts.suppliers, 50, partner=PARTNERS.pop()) yield vi(CommonAccounts.customers, -100, partner=PARTNERS.pop()) yield vi(CommonAccounts.best_bank, 40) voucher.register(REQUEST) voucher.full_clean() voucher.save()
def objects(): polls = rt.modules.polls five = polls.ChoiceSet.objects.get(name="1...5") ten = polls.ChoiceSet.objects.get(name="1...10") USERS = Cycler(settings.SITE.user_model.objects.all()) def poll(choiceset, title, details, questions): return polls.Poll( user=USERS.pop(), title=title.strip(), details=details.strip(), state=polls.PollStates.published, questions_to_add=questions, default_choiceset=choiceset) yield poll(ten, "Customer Satisfaction Survey", """ Please give your vote for each aspect of our company. """, """ =First section %(X)s has a good quality/price ratio. %(X)s is better than their concurrents. %(X)s has an attractive website. =Second section %(X)s values my money. I am proud to be a customer of %(X)s. I would recommend %(X)s to others. """ % dict(X="Polls Mentor Ltd.")) yield poll(five, "Participant feedback", """ Please give your vote for each aspect of the event. """, """ There was enough to eat. The stewards were nice and attentive. The participation fee was worth the money. Next time I will participate again. """ % dict(X="Lino Polly")) for p in polls.Poll.objects.exclude(questions_to_add=''): p.after_ui_save(None, None) yield polls.Response( poll=p, user=USERS.pop(), date=dd.today(), state=polls.ResponseStates.draft)
def objects(): if dd.plugins.trends.subject_model is None: return TrendStage = rt.models.trends.TrendStage TrendEvent = rt.models.trends.TrendEvent STAGES = Cycler(TrendStage.objects.all()) if len(STAGES) == 0: return offset = -200 for obj in dd.plugins.trends.subject_model.objects.all(): for i in range(3): yield TrendEvent(event_date=dd.today(offset), subject=obj, trend_stage=STAGES.pop()) offset += 1
def __init__(self): super(EstonianDistribution, self).__init__() Country = rt.models.countries.Country Place = rt.models.countries.Place PlaceTypes = rt.models.countries.PlaceTypes self.tallinn = Place.objects.get( type=PlaceTypes.town, name="Tallinn") self.eesti = Country.objects.get(isocode="EE") self.streets = Cycler(self.get_streets())
def objects(): Client = rt.modules.pcsw.Client Property = rt.modules.properties.Property PP = rt.modules.cv.PersonProperty PERSONS = Cycler(Client.objects.all()) for prop in Property.objects.order_by('id'): for n in range(10): #~ prop = PROPS.pop() VALUES = Cycler(prop.type.choices_for(prop)) #~ print "20120409", repr(VALUES.items) #~ for n in range(3): if len(VALUES) == 0: yield PP(person=PERSONS.pop(), property=prop) else: for n in range(len(VALUES)): yield PP(person=PERSONS.pop(), property=prop, value=VALUES.pop()[0].value)
def objects(): Role = resolve_model('households.Role') Member = resolve_model('households.Member') Household = resolve_model('households.Household') Person = resolve_model('contacts.Person') MEN = Cycler(Person.objects.filter(gender=mixins.Genders.male).order_by('birth_date')) WOMEN = Cycler(Person.objects.filter(gender=mixins.Genders.female).order_by('birth_date')) for i in range(3): he = MEN.pop() she = WOMEN.pop() #~ fam = Household(father=MEN.pop(),mother=WOMEN.pop()) fam = Household(name=he.last_name+"-"+she.last_name,type_id=3) yield fam yield Member(household=fam,person=he,role=Role.objects.get(pk=1)) yield Member(household=fam,person=she,role=Role.objects.get(pk=2))
def add_demo_account(partner): # raise Exception("20171009") if partner.country is None: return None Account = rt.models.sepa.Account qs = Account.objects.filter(partner=partner) acct = qs.first() if acct is None: ibans = IBAN_CYCLERS.get(partner.country) if ibans is None: ibans = Cycler([ x for x in IBANS if x.startswith( partner.country.isocode)]) IBAN_CYCLERS[partner.country] = ibans acct = Account(partner=partner, iban=ibans.pop(), primary=True) acct.bic = "BBRUBEBB" acct.full_clean() acct.save() return acct
def objects(): UserTypes = rt.models.users.UserTypes Client = rt.models.avanti.Client COACHES = Cycler( rt.models.users.User.objects.filter( user_type__in=[UserTypes.user, UserTypes.admin])) for client in Client.objects.all(): client.user = COACHES.pop() yield client # removed 20190727 because it causes failure under mysql # # obj = rt.models.courses.Enrolment.objects.order_by('id')[1] # obj = rt.models.courses.Enrolment.objects.get(pk=2) # yield rt.models.courses.Reminder( # enrolment=obj, user=obj.pupil.user, # date_issued=settings.SITE.demo_date(-10)) rt.models.courses.update_missing_rates()
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(): # Role = resolve_model('households.Role') # Member = resolve_model('households.Member') # Household = resolve_model('households.Household') Person = resolve_model('contacts.Person') Type = resolve_model('households.Type') MEN = Cycler(Person.objects.filter(gender=dd.Genders.male) .order_by('-id')) WOMEN = Cycler(Person.objects.filter(gender=dd.Genders.female) .order_by('-id')) TYPES = Cycler(Type.objects.all()) ses = dd.login() for i in range(5): pv = dict( head=MEN.pop(), partner=WOMEN.pop(), type=TYPES.pop()) ses.run( Person.create_household, action_param_values=pv) # yield ses.response['data_record'] # he = MEN.pop() # she = WOMEN.pop() # fam = Household(name=he.last_name + "-" + she.last_name, type_id=3) # yield fam # yield Member(household=fam, person=he, role=Role.objects.get(pk=1)) # yield Member(household=fam, person=she, role=Role.objects.get(pk=2)) return []
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)
def objects(): AddressTypes = rt.models.addresses.AddressTypes Address = rt.models.addresses.Address # Partner = rt.models.contacts.Partner Partner = dd.plugins.addresses.partner_model Place = rt.models.countries.Place eupen = Place.objects.get(name__exact='Eupen') STREETS = Cycler(streets_of_eupen()) TYPES = Cycler(AddressTypes.objects()) def create_addr_from_owner(o, **kw): kw.update(partner=o) for k in Address.ADDRESS_FIELDS: kw[k] = getattr(o, k) return Address(**kw) nr = 1 for p in Partner.objects.filter(city=eupen): if nr % 3: yield create_addr_from_owner(p, primary=True, address_type=AddressTypes.official) kw = dict(partner=p) kw.update(address_type=TYPES.pop()) kw.update(street=STREETS.pop()) kw.update(street_no=str(nr % 200)) yield Address(**kw) nr += 1
def objects(): #~ User = settings.SITE.user_model() User = resolve_model(settings.SITE.user_model) Note = resolve_model('notes.Note') NoteType = resolve_model('notes.NoteType') USERS = Cycler(User.objects.all()) if settings.SITE.project_model is not None: Project = resolve_model(settings.SITE.project_model) qs = Project.objects.all() if qs.count() > 10: qs = qs[:10] PROJECTS = Cycler(qs) #~ PROJECTS = Cycler(Project.objects.filter(name__startswith="A")) #~ PROJECTS = Cycler(Project.objects.all()) #~ COMPANIES = Cycler(Company.objects.all()) NTYPES = Cycler(NoteType.objects.all()) #~ u = User.objects.get(username='******') notetype = Instantiator('notes.NoteType').build tel = notetype(name="phone report", build_method='appyodt') yield tel yield notetype(name="todo") for i in range(100): kw = dict(user=USERS.pop(), date=settings.SITE.demo_date(days=i), subject="Important note %d" % i, #~ company=COMPANIES.pop(), type=NTYPES.pop()) if settings.SITE.project_model is not None: kw.update(project=PROJECTS.pop()) yield Note(**kw)
def objects(): User = rt.models.users.User Note = rt.models.notes.Note NoteType = rt.models.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 # print("20180502 notes.fixtures.demo calls update") settings.SITE.site_config.update(system_note_type=system_note)
def objects(): last_names = demonames.LAST_NAMES_BELGIUM male_first_names = demonames.MALE_FIRST_NAMES_FRANCE female_first_names = demonames.FEMALE_FIRST_NAMES_FRANCE Person = rt.modules.contacts.Person Place = rt.modules.countries.Place CITIES = Cycler(Place.objects.filter(country_id="BE", zip_code__startswith="40")) STREETS = Cycler(demonames.streets_of_liege()) common = dict(language="fr", country_id="BE") for i in range(100): yield Person( first_name=male_first_names.pop(), last_name=last_names.pop(), gender=dd.Genders.male, city=CITIES.pop(), street=STREETS.pop(), **common ) yield Person( first_name=female_first_names.pop(), last_name=last_names.pop(), gender=dd.Genders.female, city=CITIES.pop(), street=STREETS.pop(), **common )
def skills_objects(): "was previously in skills.fixtures.demo2" Skill = rt.models.skills.Skill Competence = rt.models.skills.Competence Demand = rt.models.skills.Demand # Ticket = rt.models.tickets.Ticket User = rt.models.users.User yield named(Skill, _('Analysis')) yield named(Skill, _('Code changes')) yield named(Skill, _('Documentation')) yield named(Skill, _('Testing')) yield named(Skill, _('Configuration')) yield named(Skill, _('Enhancement')) yield named(Skill, _('Optimization')) yield named(Skill, _('Offer')) SKILLS = Cycler(Skill.objects.all()) END_USERS = Cycler(dd.plugins.skills.end_user_model.objects.all()) i = 0 for j in range(2): for u in User.objects.all(): i += 1 yield Competence(user=u, faculty=SKILLS.pop()) if i % 2: yield Competence(user=u, faculty=SKILLS.pop()) if i % 3: yield Competence(user=u, faculty=SKILLS.pop(), end_user=END_USERS.pop()) for i, t in enumerate(dd.plugins.skills.demander_model.objects.all()): yield Demand(demander=t, skill=SKILLS.pop()) if i % 3: yield Demand(demander=t, skill=SKILLS.pop())
def objects(refs="PMO BNK"): Journal = rt.modules.ledger.Journal USERS = Cycler(settings.SITE.user_model.objects.all()) OFFSETS = Cycler(12, 20, 28) START_YEAR = dd.plugins.ledger.start_year end_date = settings.SITE.demo_date(-30) for ref in refs.split(): offset = OFFSETS.pop() date = datetime.date(START_YEAR, 1, 1) jnl = Journal.objects.get(ref=ref) sug_table = jnl.voucher_type.table_class.suggestions_table while date < end_date: voucher = jnl.create_voucher(user=USERS.pop(), voucher_date=date + delta(days=offset)) yield voucher # start action request for do_fill: ba = sug_table.get_action_by_name('do_fill') ar = ba.request(master_instance=voucher) # select all rows: suggestions = sug_table.request(voucher) ar.selected_rows = list(suggestions) # run the action: ar.run() # some items differ from what was suggested: if ref == 'BNK': for item in voucher.items.all(): pd = PAYMENT_DIFFS.pop() if pd: pd = Decimal(pd) item.amount += item.amount * pd if item.amount: item.save() else: item.delete() # if no items have been created (or if they have been # deleted by PAYMENT_DIFFS), remove the empty voucher: if voucher.items.count() == 0: voucher.delete() else: voucher.register(REQUEST) voucher.save() date += delta(months=1)
class EstonianDistribution(Distribution): def __init__(self): super(EstonianDistribution, self).__init__() Country = rt.models.countries.Country Place = rt.models.countries.Place PlaceTypes = rt.models.countries.PlaceTypes self.tallinn = Place.objects.get( type=PlaceTypes.town, name="Tallinn") self.eesti = Country.objects.get(isocode="EE") self.streets = Cycler(self.get_streets()) def get_last_names(self): yield demo.LAST_NAMES_ESTONIA def get_male_first_names(self): yield demo.MALE_FIRST_NAMES_ESTONIA def get_female_first_names(self): yield demo.FEMALE_FIRST_NAMES_ESTONIA def get_streets(self): Place = rt.models.countries.Place PlaceTypes = rt.models.countries.PlaceTypes for streetname, linnaosa in demo.streets_of_tallinn(): t = PlaceTypes.township try: p = Place.objects.get(type=t, name__iexact=linnaosa) yield p, streetname except Place.DoesNotExist: pass # raise Exception("Unknown %s %r" % (t, linnaosa)) def before_save(self, obj): if obj.country and obj.country.isocode == 'BE': obj.country = self.eesti p, s = self.streets.pop() obj.city = p obj.zip_code = p.zip_code obj.street = s
def objects(): polls = rt.models.polls agree = polls.ChoiceSet.objects.get( **dd.str2kw('name', _("Agree-Disagree"))) USERS = Cycler(settings.SITE.user_model.objects.all()) def poll(choiceset, title, details, questions): return polls.Poll( user=USERS.pop(), title=title.strip(), details=details.strip(), state=polls.PollStates.active, questions_to_add=questions, default_choiceset=choiceset) yield poll( agree, "Political compass", "First two pages of [url https://www.politicalcompass.org/test]", QUESTIONS)
def objects(): TXT = Cycler( [styled, table, lorem, short_lorem, cond_comment, plain1, plain2]) if not dd.is_installed('tickets'): return OWNERS = Cycler(rt.models.tickets.Ticket.objects.all()) if len(OWNERS) == 0: return Comment = rt.models.comments.Comment User = rt.models.users.User for i in range(2): for u in User.objects.all(): owner = OWNERS.pop() if owner.private: txt = "<p>Very confidential comment</p>" else: txt = TXT.pop() # txt = "Hackerish comment" obj = Comment(user=u, owner=owner, body=txt) obj.before_ui_save(None) yield obj
Rue de l'Académie """ for ln in STREETS_OF_LIEGE.splitlines(): if ln and ln[0] == '*': m = re.match(STREET_RE, ln) if m: s = m.group(1).strip() if '|' in s: s = s.split('|')[1] yield s #~ streets.append(s) LAST_NAMES_BELGIUM = Cycler(splitter1(LAST_NAMES_BELGIUM)) MALE_FIRST_NAMES_FRANCE = Cycler(splitter2(MALE_FIRST_NAMES_FRANCE)) FEMALE_FIRST_NAMES_FRANCE = Cycler(splitter2(FEMALE_FIRST_NAMES_FRANCE)) LAST_NAMES_AFRICAN = Cycler(splitter1(LAST_NAMES_AFRICAN)) MALE_FIRST_NAMES_AFRICAN = Cycler(splitter1(MALE_FIRST_NAMES_AFRICAN)) FEMALE_FIRST_NAMES_AFRICAN = Cycler(splitter1(FEMALE_FIRST_NAMES_AFRICAN)) LAST_NAMES_MUSLIM = Cycler(splitter1(LAST_NAMES_MUSLIM)) MALE_FIRST_NAMES_MUSLIM = Cycler(splitter1(MALE_FIRST_NAMES_MUSLIM)) FEMALE_FIRST_NAMES_MUSLIM = Cycler(splitter1(FEMALE_FIRST_NAMES_MUSLIM)) if False: last_names = [] for ln in LAST_NAMES_FRANCE.splitlines(): if ln:
def objects(): Member = rt.modules.households.Member MemberRoles = rt.modules.households.MemberRoles # Household = resolve_model('households.Household') Person = resolve_model(dd.plugins.households.person_model) Type = resolve_model('households.Type') MEN = Cycler(Person.objects.filter(gender=dd.Genders.male).order_by('-id')) WOMEN = Cycler( Person.objects.filter(gender=dd.Genders.female).order_by('-id')) TYPES = Cycler(Type.objects.all()) ses = rt.login() for i in range(5): pv = dict(head=MEN.pop(), partner=WOMEN.pop(), type=TYPES.pop()) ses.run(Person.create_household, action_param_values=pv) # yield ses.response['data_record'] # he = MEN.pop() # she = WOMEN.pop() # fam = Household(name=he.last_name + "-" + she.last_name, type_id=3) # yield fam # yield Member(household=fam, person=he, role=Role.objects.get(pk=1)) # yield Member(household=fam, person=she, role=Role.objects.get(pk=2)) i = 0 for m in Member.objects.filter(role=MemberRoles.head): i += 1 if i % 3 == 0: m.end_date = i2d(20020304) yield m pv = dict(head=m.person, partner=WOMEN.pop(), type=TYPES.pop()) ses.run(Person.create_household, action_param_values=pv)
"""Generate some fictive notes. """ from django.conf import settings from lino.utils.instantiator import Instantiator from lino.utils import Cycler from lino.api import _, dd, rt SUBJECTS = Cycler(( _("Get acquaintaned"), _("Ideas"), _("Feedback after first working day"), _("More ideas"), _("Tried to explain"), _("Appointment with RCycle"), _("Cancelled"), _("Apologized via SMS"), )) 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()
def objects(): Person = rt.models.contacts.Person Company = rt.models.contacts.Company Client = rt.models.avanti.Client ClientContact = rt.models.clients.ClientContact ClientContactType = rt.models.clients.ClientContactType TranslatorTypes = rt.models.avanti.TranslatorTypes ClientStates = rt.models.avanti.ClientStates EndingReason = rt.models.avanti.EndingReason Category = rt.models.avanti.Category LanguageKnowledge = rt.models.cv.LanguageKnowledge yield babeld(EndingReason, _("Successfully ended"), id=1) yield babeld(EndingReason, _("Health problems"), id=2) yield babeld(EndingReason, _("Familiar reasons"), id=3) yield babeld(EndingReason, _("Missing motivation"), id=4) yield babeld(EndingReason, _("Return to home country"), id=5) yield babeld(EndingReason, _("Other"), id=9) yield babeld(Category, _("Language course")) yield babeld(Category, _("Integration course")) yield babeld(Category, _("Language & integration course")) yield babeld(Category, _("External course")) yield babeld(Category, _("Justified interruption")) yield babeld(Category, _("Successfully terminated")) # yield named(ClientContactType, _("Health insurance")) # yield named(ClientContactType, _("School")) # yield named(ClientContactType, _("Pharmacy")) # yield named(ClientContactType, _("GSS")) # yield named(ClientContactType, _("ISS")) for i in KnownContactTypes.get_list_items(): yield i.create_object() yield named(ClientContactType, _("Other")) TRTYPES = Cycler(TranslatorTypes.objects()) POLICIES = Cycler(rt.models.cal.EventPolicy.objects.all()) CCTYPES = Cycler(ClientContactType.objects.all()) for cct in ClientContactType.objects.all(): yield Company( name="Favourite {}".format(cct), client_contact_type=cct) yield Company( name="Best {}".format(cct), client_contact_type=cct) CCT2COMPANIES = dict() for cct in ClientContactType.objects.all(): CCT2COMPANIES[cct] = Cycler(Company.objects.filter( client_contact_type=cct)) count = 0 for person in Person.objects.all(): count += 1 if count % 7 and person.gender and not person.birth_date: # most persons, but not those from humanlinks and those # with empty gender field, become clients and receive a # new exotic name. Youngest client is 16; 170 days between # each client birth_date = settings.SITE.demo_date(-170 * count - 16 * 365) national_id = generate_ssin(birth_date, person.gender) client = mtichild( person, Client, national_id=national_id, birth_date=birth_date) if count % 2: client.client_state = ClientStates.coached client.event_policy = POLICIES.pop() # elif count % 5: # client.client_state = ClientStates.newcomer else: client.client_state = ClientStates.former # Dorothée is three times in our database if client.first_name == "Dorothée": client.national_id = None client.birth_date = '' else: p = client 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() p.first_name = p.first_name.replace('a', 'á') p.name = join_words(p.last_name, p.first_name) if count % 4: client.translator_type = TRTYPES.pop() # client.full_clean() # client.save() yield client else: pass # yield mtichild( # person, Translator, translator_type=TT.pop()) CefLevel = rt.models.cv.CefLevel LANGUAGES = Cycler(rt.models.languages.Language.objects.all()) HOW_WELL = Cycler(rt.models.cv.HowWell.get_list_items()) CEF_LEVELS = Cycler(CefLevel.get_list_items()) LK_COUNTS = Cycler(1, 2, 3, 2, 1, 4) def language_knowledge(person, offset, language, native, **kwargs): kwargs.update(entry_date=dd.today(offset)) kwargs.update(language=language, native=native) if not native: kwargs.update( spoken=HOW_WELL.pop(), written=HOW_WELL.pop(), spoken_passively=HOW_WELL.pop(), written_passively=HOW_WELL.pop(), cef_level=CEF_LEVELS.pop()) kwargs.update(has_certificate=person.id % 2) return LanguageKnowledge(person=person, **kwargs) for i, obj in enumerate(Client.objects.all()): for j in range(i % 2): cct = CCTYPES.pop() company = CCT2COMPANIES[cct].pop() yield ClientContact(type=cct, client=obj, company=company) if obj.client_state == ClientStates.coached: for i in range(LK_COUNTS.pop()): yield language_knowledge(obj, -400, LANGUAGES.pop(), i==0) lk = LanguageKnowledge.objects.filter(person=obj, native=False).first() if lk: better = next_choice(CefLevel, lk.cef_level) if better: # raise Exception("okay") new_lk = language_knowledge(obj, -10, lk.language, False) new_lk.cef_level = better yield new_lk
def get_last_names(): yield demo.LAST_NAMES_MUSLIM yield demo.LAST_NAMES_RUSSIA yield demo.LAST_NAMES_AFRICAN def get_male_first_names(): yield demo.MALE_FIRST_NAMES_MUSLIM yield demo.MALE_FIRST_NAMES_RUSSIA yield demo.MALE_FIRST_NAMES_AFRICAN def get_female_first_names(): yield demo.FEMALE_FIRST_NAMES_MUSLIM yield demo.FEMALE_FIRST_NAMES_RUSSIA yield demo.FEMALE_FIRST_NAMES_AFRICAN LAST_NAMES = Cycler(get_last_names()) MALES = Cycler(get_male_first_names()) FEMALES = Cycler(get_female_first_names()) def objects(): Person = rt.models.contacts.Person Company = rt.models.contacts.Company Client = rt.models.avanti.Client ClientContact = rt.models.clients.ClientContact ClientContactType = rt.models.clients.ClientContactType TranslatorTypes = rt.models.avanti.TranslatorTypes ClientStates = rt.models.avanti.ClientStates EndingReason = rt.models.avanti.EndingReason Category = rt.models.avanti.Category
def objects(): Journal = rt.models.ledger.Journal Company = rt.models.contacts.Company USERS = Cycler(settings.SITE.user_model.objects.all()) PROVIDERS = Cycler( Company.objects.filter( sepa_accounts__iban__isnull=False).order_by('id')) JOURNAL_P = Journal.objects.get(ref="PRC") ACCOUNTS = Cycler(JOURNAL_P.get_allowed_accounts()) AMOUNTS = Cycler([ Decimal(x) for x in "20 29.90 39.90 99.95 199.95 599.95 1599.99".split() ]) AMOUNT_DELTAS = Cycler( [Decimal(x) for x in "0 0.60 1.10 1.30 2.50".split()]) DATE_DELTAS = Cycler((1, 2, 3, 4, 5, 6, 7)) INFLATION_RATE = Decimal("0.02") """"purchase stories" : each story represents a provider who sends monthly invoices. """ PURCHASE_STORIES = [] for i in range(5): # provider, (account,amount) story = (PROVIDERS.pop(), []) story[1].append((ACCOUNTS.pop(), AMOUNTS.pop())) if i % 3: story[1].append((ACCOUNTS.pop(), AMOUNTS.pop())) PURCHASE_STORIES.append(story) START_YEAR = dd.plugins.ledger.start_year date = datetime.date(START_YEAR, 1, 1) end_date = settings.SITE.demo_date(-10) # + delta(years=-2) # end_date = datetime.date(START_YEAR+1, 5, 1) # print(20151216, START_YEAR, settings.SITE.demo_date(), end_date - date) while date < end_date: for story in PURCHASE_STORIES: vd = date + delta(days=DATE_DELTAS.pop()) invoice = vat.VatAccountInvoice( journal=JOURNAL_P, partner=story[0], user=USERS.pop(), voucher_date=vd, # payment_term=PAYMENT_TERMS.pop(), entry_date=vd + delta(days=1)) yield invoice for account, amount in story[1]: amount += amount + \ (amount * INFLATION_RATE * (date.year - START_YEAR)) item = vat.InvoiceItem(voucher=invoice, account=account, total_incl=myround(amount) + AMOUNT_DELTAS.pop()) item.total_incl_changed(REQUEST) item.before_ui_save(REQUEST) #~ if item.total_incl: #~ print "20121208 ok", item #~ else: #~ if item.product.price: #~ raise Exception("20121208") yield item invoice.register(REQUEST) invoice.save() date += delta(months=1)