def objects(): ses = rt.login('wilfried') dd.plugins.b2c.import_statements_path = HERE settings.SITE.site_config.import_b2c(ses) # That file contains a few dozen of accounts which are now # "orphaned". We are now going to assign theses accounts to a # random partner TODO: find a more realistic rule for selecting # the candidates. The filter might be a plugin attribute. IA = rt.modules.b2c.Account SA = rt.modules.sepa.Account PARTNERS = Cycler(rt.modules.contacts.Partner.objects.all()) count = 0 for ia in IA.objects.all(): try: SA.objects.get(iban=ia.iban) except SA.DoesNotExist: yield SA(partner=PARTNERS.pop(), iban=ia.iban) count += 1 if count == 0: dd.logger.info("%d statements", rt.modules.b2c.Statement.objects.count()) raise Exception( "There's something wrong: no accounts have been imported")
def objects(): Person = rt.modules.mti.Person Restaurant = rt.modules.mti.Restaurant Place = rt.modules.mti.Place anne = Person(name="Anne") yield anne bert = Person(name="Bert") yield bert claude = Person(name="Claude") yield claude dirk = Person(name="Dirk") yield dirk ernie = Person(name="Ernie") yield ernie fred = Person(name="Fred") yield fred PERSONS = Cycler(Person.objects.all()) p = Place(name="Bert's pub") yield p p.owners.add(anne) p.owners.add(bert) for name in RESTAURANT_NAMES.strip().splitlines(): r = Restaurant(name=name) yield r r.owners.add(PERSONS.pop()) r.cooks.add(PERSONS.pop())
def unused_objects(): Vote = rt.models.votes.Vote VoteStates = rt.models.votes.VoteStates User = rt.models.users.User STATES = Cycler(VoteStates.objects()) USERS = Cycler(User.objects.all()) TICKETS = Cycler(dd.plugins.votes.votable_model.objects.all()) if len(TICKETS): for i in range(20): USERS.pop() # not every user votes obj = Vote(state=STATES.pop(), user=USERS.pop(), votable=TICKETS.pop()) if obj.user != obj.votable.user: yield obj
def objects(): # not used. from the time when we still had tickets and courses Line = rt.models.courses.Line Topic = rt.models.courses.Topic Course = rt.models.courses.Course EventType = rt.models.cal.EventType Room = rt.models.cal.Room Company = rt.models.contacts.Company Person = rt.models.contacts.Person Role = rt.models.contacts.Role RoleType = rt.models.contacts.RoleType school = named(Room, _("School")) yield school center = named(Room, _("Youth center")) yield center library = named(Room, _("Library")) yield library training = named(EventType, _("Training")) yield training workshop = named(EventType, _("Workshop")) yield workshop camp = named(EventType, _("Camp")) yield camp nature = named(Topic, _("Nature")) yield nature folk = named(Topic, _("Folk")) yield folk together = named(Topic, _("Acting together")) yield together health = named(Topic, _("Health")) yield health comp = named(Topic, _("Computer")) yield comp yield named(Line, _("Photography workshop"), event_type=workshop, every_unit=Recurrencies.once, topic=together) yield named(Line, _("Teamwork training"), event_type=training, every_unit=Recurrencies.once, topic=together) yield named(Line, _("Folk camp 2017"), event_type=camp, every_unit=Recurrencies.once, topic=together) yield named(Line, _("Lino Vilma training"), event_type=training, every_unit=Recurrencies.weekly, topic=together) LINES = Cycler(Line.objects.all()) for offset in (-60, -10, -5, 1, 10, 30): yield Course(line=LINES.pop(), start_date=dd.demo_date(offset)) choir = Company(name="Village choir") yield choir yield Company(name="Sopranos", parent=choir) yield Company(name="Altos", parent=choir) yield Company(name="Tenors", parent=choir) yield Company(name="Basses", parent=choir) RTYPES = Cycler(RoleType.objects.all()) COMPANIES = Cycler(Company.objects.all()) for i, p in enumerate(Person.objects.all()): for j in range(i % 3): yield Role(company=COMPANIES.pop(), type=RTYPES.pop(), person=p)