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)
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(): 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(): 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(): 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(): # 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 = 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(): 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(): 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(): 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(): 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(): 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(): 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(): 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 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 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 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(): 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 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(): Member = rt.modules.households.Member MemberRoles = rt.modules.households.MemberRoles # Household = resolve_model('households.Household') Person = dd.plugins.households.person_model Type = resolve_model('households.Type') men = Person.objects.filter(gender=dd.Genders.male).order_by('-id') women = Person.objects.filter(gender=dd.Genders.female).order_by('-id') # avoid interference with persons created by humanlinks demo # because these have already their households: men = men.filter(household_members__isnull=True) men = men.filter(humanlinks_children__isnull=True) men = men.filter(humanlinks_parents__isnull=True) women = women.filter(humanlinks_children__isnull=True) women = women.filter(humanlinks_parents__isnull=True) women = women.filter(household_members__isnull=True) MEN = Cycler(men) WOMEN = Cycler(women) TYPES = Cycler(Type.objects.all()) if not len(MEN) or not len(WOMEN): raise Exception("Not enough persons in {} and {} (all: {})".format( men, women, Person.objects.all())) # avoid automatic creation of children # loading_from_dump = settings.SITE.loading_from_dump # settings.SITE.loading_from_dump = True 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)
def objects(): Note = rt.modules.notes.Note NTYPES = Cycler(rt.modules.notes.NoteType.objects.all()) USERS = Cycler(rt.modules.users.User.objects.all()) CLIENTS = Cycler(rt.modules.pcsw.Client.objects.all()) yield lib_objects() yield Note(user=USERS.pop(), date=dd.demo_date(days=-20), project=CLIENTS.pop(), subject=_("Do not offer coffee"), important=True, type=NTYPES.pop())
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(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(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(): 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(): 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 # 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(): 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(): bd = i2d(19500203) for p in contacts.Person.objects.filter(country__isocode="BE"): yield mti.insert_child(p,Employee,birth_date=bd) bd += datetime.timedelta(days=234) # experimental value for i,e in enumerate(Employee.objects.all()): if i % 4: e.is_chef = True e.is_member = False yield e yield Area(name="North") yield Area(name="East") yield Area(name="South") yield Area(name="West") CHEFS = Cycler(Employee.objects.filter(is_chef=True)) MEMBERS = Cycler(Employee.objects.filter(is_member=True)) AREAS = Cycler(patrols.Area.objects.all()) MEMBERS_PER_TEAM = 2 le = list(Employee.objects.filter(is_member=True)) while len(le) > MEMBERS_PER_TEAM: name = '-'.join([o.last_name for o in le[:MEMBERS_PER_TEAM]]) t = Team(chef=CHEFS.pop(),name=name) yield t for e in le[:MEMBERS_PER_TEAM]: yield Member(team=t,employee=e) le = le[MEMBERS_PER_TEAM:] #~ yield Team(name="One",chef=CHEFS.pop()) #~ yield Team(name="Two",chef=CHEFS.pop()) #~ yield Team(name="Three",chef=CHEFS.pop()) TEAMS = Cycler(patrols.Team.objects.all()) d = settings.SITE.demo_date(-20) for i in range(50): yield patrols.Patrol(date=d,team=TEAMS.pop(),area=AREAS.pop()) d += ONE_DAY for p in patrols.Patrol.objects.all(): yield patrols.WorkDay(date=p.date,employee=p.team.chef,type=WDT.pop()) for m in p.team.member_set.all(): yield patrols.WorkDay(date=p.date,employee=m.employee,type=WDT.pop())
def objects(): #~ if settings.SITE.project_model: #~ PROJECTS = Cycler(settings.SITE.project_model.objects.all()) ETYPES = Cycler(EventType.objects.filter(is_appointment=True)) def s2duration(s): h, m = map(int, s.split(':')) #~ return relativedelta(hours=h,minutes=m) return datetime.timedelta(hours=h, minutes=m) def s2time(s): h, m = map(int, s.split(':')) return datetime.time(h, m) USERS = Cycler(settings.SITE.user_model.objects.exclude(email='')) TIMES = Cycler([s2time(s) for s in ('08:30', '09:40', '10:20', '11:10', '13:30')]) #~ DURATIONS = Cycler([s2duration(s) for s in ('00:30','00:40','1:00','1:30','2:00','3:00')]) DURATIONS = Cycler([ s2duration(s) for s in ( '01:00', '01:15', '1:30', '1:45', '2:00', '2:30', '3:00')]) ACL = Cycler(cal.AccessClasses.items()) STATES = Cycler(cal.EntryStates.items()) SUMMARIES = Cycler(( dict(en='Lunch', de=u"Mittagessen", fr=u"Diner"), dict(en='Dinner', de=u"Abendessen", fr=u"Souper"), dict(en='Breakfast', de=u"Frühstück", fr=u"Petit-déjeuner"), dict(en='Meeting', de=u"Treffen", fr=u"Rencontre"), dict(en='Consultation', de=u"Beratung", fr=u"Consultation"), dict(en='Seminar', de=u"Seminar", fr=u"Séminaire"), dict(en='Evaluation', de=u"Auswertung", fr=u"Evaluation"), dict(en='First meeting', de=u"Erstgespräch", fr=u"Première rencontre"), dict(en='Interview', de=u"Interview", fr=u"Interview") )) #~ for i in range(20): date = settings.SITE.demo_date(-20) for i in range(60): u = USERS.pop() if i % 3: date += ONE_DAY # relativedelta(days=1) s = SUMMARIES.pop().get( u.language, None) or SUMMARIES.pop().get('en') st = TIMES.pop() kw = dict(user=u, start_date=date, event_type=ETYPES.pop(), start_time=st, summary=s) kw.update(access_class=ACL.pop()) kw.update(state=STATES.pop()) #~ if settings.SITE.project_model: #~ kw.update(project=PROJECTS.pop()) e = Event(**kw) e.set_datetime('end', e.get_datetime('start') + DURATIONS.pop()) yield e
def objects(): #~ yield courses.Room(name="A") #~ yield cal.Place(name="A") #~ yield cal.Place(name="B") #~ yield cal.Place(name="C") #~ yield cal.Place(name="D") #~ yield cal.Place(name="E") #~ yield cal.Place(name="F") PTYPES = Cycler(courses.PupilType.objects.all()) TTYPES = Cycler(courses.TeacherType.objects.all()) n = 0 for p in Person.objects.all(): if n % 2 == 0: yield mti.insert_child(p,courses.Pupil,pupil_type=PTYPES.pop()) if n % 9 == 0: yield mti.insert_child(p,courses.Teacher,teacher_type=TTYPES.pop()) n += 1 if False: #~ PS = Cycler(courses.PresenceStatus.objects.all()) CONTENTS = Cycler(courses.Line.objects.all()) USERS = Cycler(users.User.objects.all()) PLACES = Cycler(cal.Room.objects.all()) TEACHERS = Cycler(courses.Teacher.objects.all()) SLOTS = Cycler(courses.Slot.objects.all()) #~ SLOTS = Cycler(1,2,3,4) PUPILS = Cycler(courses.Pupil.objects.all()) #~ Event = settings.SITE.modules.cal.Event #~ from lino.modlib.cal.utils import DurationUnit year = settings.SITE.demo_date().year if settings.SITE.demo_date().month < 7: year -= 1 for i in range(10): c = courses.Course( user=USERS.pop(), teacher=TEACHERS.pop(), line=CONTENTS.pop(),room=PLACES.pop(), start_date=datetime.date(year,9,1+i), end_date=datetime.date(year+1,6,30), every=1, every_unit=cal.DurationUnits.weeks, slot=SLOTS.pop(), ) yield c for j in range(5): yield courses.Enrolment(pupil=PUPILS.pop(),course=c) c.save() # fill presences
def objects(): #~ if settings.SITE.project_model: #~ PROJECTS = Cycler(settings.SITE.project_model.objects.all()) ETYPES = Cycler(EventType.objects.filter(is_appointment=True)) def s2duration(s): h, m = map(int, s.split(':')) #~ return relativedelta(hours=h,minutes=m) return datetime.timedelta(hours=h, minutes=m) def s2time(s): h, m = map(int, s.split(':')) return datetime.time(h, m) TIMES = Cycler( [s2time(s) for s in ('08:30', '09:40', '10:20', '11:10', '13:30')]) #~ DURATIONS = Cycler([s2duration(s) for s in ('00:30','00:40','1:00','1:30','2:00','3:00')]) DURATIONS = Cycler([ s2duration(s) for s in ('01:00', '01:15', '1:30', '1:45', '2:00', '2:30', '3:00') ]) ACL = Cycler(cal.AccessClasses.items()) STATES = Cycler(cal.EventStates.items()) SUMMARIES = Cycler( (dict(en='Lunch', de=u"Mittagessen", fr=u"Diner"), dict(en='Dinner', de=u"Abendessen", fr=u"Souper"), dict(en='Breakfast', de=u"Frühstück", fr=u"Petit-déjeuner"), dict(en='Meeting', de=u"Treffen", fr=u"Rencontre"), dict(en='Consultation', de=u"Beratung", fr=u"Consultation"), dict(en='Seminar', de=u"Seminar", fr=u"Séminaire"), dict(en='Evaluation', de=u"Auswertung", fr=u"Evaluation"), dict(en='First meeting', de=u"Erstgespräch", fr=u"Première rencontre"), dict(en='Interview', de=u"Interview", fr=u"Interview"))) #~ for i in range(20): for u in settings.SITE.user_model.objects.exclude(email=''): #~ u = USERS.pop() if True: date = settings.SITE.demo_date() for i in range(12): if i % 3: date += ONE_DAY # relativedelta(days=1) s = SUMMARIES.pop().get(u.language, None) or SUMMARIES.pop().get('en') st = TIMES.pop() kw = dict(user=u, start_date=date, event_type=ETYPES.pop(), start_time=st, summary=s) kw.update(access_class=ACL.pop()) kw.update(state=STATES.pop()) #~ if settings.SITE.project_model: #~ kw.update(project=PROJECTS.pop()) e = Event(**kw) e.set_datetime('end', e.get_datetime('start') + DURATIONS.pop()) yield e
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 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(): 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)
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(): 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 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 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(): 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
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(), user=USERS.pop(), subject=SUBJECTS.pop(), entry_type=TYPES.pop()) if i % 7: yield e
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 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 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(): Journal = rt.models.ledger.Journal Person = rt.models.contacts.Person Product = rt.models.products.Product USERS = Cycler(settings.SITE.user_model.objects.all()) PRODUCTS = Cycler(Product.objects.order_by('id')) JOURNAL_S = Journal.objects.get(ref="SLS") CUSTOMERS = Cycler(Person.objects.filter( gender=dd.Genders.male).order_by('id')) assert Person.objects.count() > 0 ITEMCOUNT = Cycler(1, 2, 3) QUANTITIES = Cycler(15, 10, 8, 4) # SALES_PER_MONTH = Cycler(2, 1, 3, 2, 0) SALES_PER_MONTH = Cycler(5, 4, 1, 8, 6) date = datetime.date(dd.plugins.ledger.start_year, 1, 1) end_date = settings.SITE.demo_date(-10) # + delta(years=-2) while date < end_date: partner = None for i in range(SALES_PER_MONTH.pop()): # Every fifth time there are two successive invoices # to the same partner. if partner is None or i % 5: partner = CUSTOMERS.pop() invoice = sales.VatProductInvoice( journal=JOURNAL_S, partner=partner, user=USERS.pop(), voucher_date=date + delta(days=5 + i), entry_date=date + delta(days=5 + i + 1), # payment_term=PAYMENT_TERMS.pop(), ) yield invoice for j in range(ITEMCOUNT.pop()): item = sales.InvoiceItem( voucher=invoice, product=PRODUCTS.pop(), qty=QUANTITIES.pop()) item.product_changed(REQUEST) item.before_ui_save(REQUEST) yield item invoice.register(REQUEST) invoice.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(): 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')) USERS = Cycler(settings.SITE.user_model.objects.all()) AMOUNTS = Cycler([ Decimal(x) for x in "2.50 6.80 9.95 14.50 20 29.90 39.90 39.90 99.95 199.95 599.95 1599.99" .split() ]) ITEMCOUNT = Cycler(1, 3, 10) for i in range(2): jnl = JOURNALS.pop() voucher = MODEL(journal=jnl, user=USERS.pop(), date=settings.SITE.demo_date(-30 + i)) yield voucher ACCOUNTS = Cycler(jnl.get_allowed_accounts()) for j in range(ITEMCOUNT.pop()): item = voucher.add_voucher_item(partner=PARTNERS.pop(), account=ACCOUNTS.pop(), amount=AMOUNTS.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 voucher.register(REQUEST) yield voucher
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(): 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