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(): 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(): 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 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(): 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(): 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(): 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 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(): 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(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 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(): 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(): 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 __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(): 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(): #~ 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(): 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(): 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 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(): 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)
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)