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(): Topic = rt.models.topics.Topic 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, _("Travel")) yield workshop camp = named(EventType, _("Camp")) yield camp nature = named(Topic, _("Nature")) yield nature folk = named(Topic, _("Folk")) yield folk health = named(Topic, _("Health")) yield health comp = named(Topic, _("Computer")) yield comp
def objects(): UserTypes = rt.models.users.UserTypes Company = rt.models.contacts.Company Product = rt.models.products.Product Account = rt.models.accounts.Account AccountTypes = rt.models.accounts.AccountTypes CommonAccounts = rt.models.accounts.CommonAccounts yield create_user("daniel", UserTypes.therapist) yield create_user("elmar", UserTypes.therapist) yield create_user("lydia", UserTypes.secretary) # yield skills_objects() obj = Company( name="Tough Thorough Thought Therapies", country_id="BE", vat_id="BE12 3456 7890") yield obj settings.SITE.site_config.update(site_company=obj) yield named(Product, _("Group therapy"), sales_price=30) indacc = named( Account, _("Sales on individual therapies"), group=CommonAccounts.sales.get_object().group, type=AccountTypes.incomes, ref="7010") yield indacc yield named( Product, _("Individual therapy"), sales_price=60, sales_account=indacc) yield named(Product, _("Other"), sales_price=35)
def objects(): Group = rt.models.groups.Group User = rt.models.users.User UserTypes = rt.models.users.UserTypes yield named(Group, _("Hitchhiker's Guide to the Galaxy")) yield named(Group, _("Star Trek")) yield named(Group, _("Harry Potter")) yield User(username="******", user_type=UserTypes.user, first_name="Andy") yield User(username="******", user_type=UserTypes.user, first_name="Bert") yield User(username="******", user_type=UserTypes.user, first_name="Chloe")
def objects(): Group = rt.models.groups.Group User = rt.models.users.User UserTypes = rt.models.users.UserTypes yield named(Group, _("Hitchhiker's Guide to the Galaxy")) yield named(Group, _("Star Trek")) yield named(Group, _("Harry Potter")) yield User(username="******", user_type=UserTypes.user) yield User(username="******", user_type=UserTypes.user) yield User(username="******", user_type=UserTypes.user)
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 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
def tickets_objects(): # was previously in tickets User = rt.models.users.User Company = rt.models.contacts.Company Topic = rt.models.topics.Topic TT = rt.models.tickets.TicketType Ticket = rt.models.tickets.Ticket # Competence = rt.models.tickets.Competence Interest = rt.models.topics.Interest Milestone = dd.plugins.tickets.milestone_model # Milestone = rt.models.deploy.Milestone # Deployment = rt.models.deploy.Deployment # WishTypes = rt.models.deploy.WishTypes # Project = rt.models.tickets.Project # Site = rt.models.tickets.Site Site = dd.plugins.tickets.site_model Link = rt.models.tickets.Link LinkTypes = rt.models.tickets.LinkTypes Subscription = rt.models.tickets.Subscription #EntryType = rt.models.blogs.EntryType #Entry = rt.models.blogs.Entry # Star = rt.models.stars.Star # Tagging = rt.models.blogs.Tagging # Line = rt.models.courses.Line List = rt.models.lists.List cons = rt.models.users.UserTypes.consultant dev = rt.models.users.UserTypes.developer yield create_user("marc") yield create_user("mathieu", cons) yield create_user("luc", dev) yield create_user("jean", rt.models.users.UserTypes.senior) USERS = Cycler(User.objects.all()) WORKERS = Cycler(User.objects.filter( username__in='mathieu luc jean'.split())) END_USERS = Cycler(User.objects.filter(user_type='')) yield named(TT, _("Bugfix")) yield named(TT, _("Enhancement")) yield named(TT, _("Upgrade")) # sprint = named(Line, _("Sprint")) # yield sprint TYPES = Cycler(TT.objects.all()) yield Topic(name="Lino Core", ref="linõ") yield Topic(name="Lino Welfare", ref="welfäre") yield Topic(name="Lino Cosi", ref="così") yield Topic(name="Lino Voga", ref="faggio") # ref differs from name TOPICS = Cycler(Topic.objects.all()) RTYPES = Cycler(ReportingTypes.objects()) for name in "welket welsch pypi".split(): obj = Company(name=name) yield obj yield Site( name=name, company=obj, reporting_type=RTYPES.pop()) COMPANIES = Cycler(Company.objects.all()) yield Company(name="Saffre-Rumma") for u in Company.objects.exclude(name="pypi"): for i in range(3): yield Interest(owner=u, topic=TOPICS.pop()) # prj1 = Project( # name="Framewörk", ref="linö", private=False, # company=COMPANIES.pop(), # reporting_type=RTYPES.pop(), # start_date=i2d(20090101)) # yield prj1 # yield Project( # name="Téam", ref="téam", start_date=i2d(20100101), # reporting_type=RTYPES.pop(), # company=COMPANIES.pop(), # parent=prj1, private=True) # prj2 = Project( # name="Documentatión", ref="docs", private=False, # reporting_type=RTYPES.pop(), # company=COMPANIES.pop(), # start_date=i2d(20090101), parent=prj1) # yield prj2 # yield Project( # name="Research", ref="research", private=False, # company=COMPANIES.pop(), # start_date=i2d(19980101), parent=prj2) # yield Project( # name="Shop", ref="shop", private=False, # reporting_type=RTYPES.pop(), # company=COMPANIES.pop(), # start_date=i2d(20120201), end_date=i2d(20120630)) # PROJECTS = Cycler(Project.objects.all()) # for u in User.objects.all(): # yield Competence(user=u, project=PROJECTS.pop()) # yield Competence(user=u, project=PROJECTS.pop()) if dd.is_installed('meetings'): SITES = Cycler(Site.objects.exclude(name="pypi")) # LISTS = Cycler(List.objects.all()) for i in range(7): site = SITES.pop() d = dd.today(i*2-20) kw = dict( user=WORKERS.pop(), start_date=d, # line=sprint, # project=PROJECTS.pop(), # expected=d, reached=d, # expected=d, reached=d, name="{}@{}".format(d.strftime("%Y%m%d"), site), # list=LISTS.pop() ) kw[Milestone.site_field_name] = site yield Milestone(**kw) # yield Milestone(site=SITES.pop(), expected=dd.today()) # yield Milestone(project=PROJECTS.pop(), expected=dd.today()) SITES = Cycler(Site.objects.all()) TicketStates = rt.models.tickets.TicketStates TSTATES = Cycler(TicketStates.objects()) # Vote = rt.models.votes.Vote # VoteStates = rt.models.votes.VoteStates # VSTATES = Cycler(VoteStates.objects()) num = [0] def ticket(summary, **kwargs): num[0] += 1 u = WORKERS.pop() kwargs.update( ticket_type=TYPES.pop(), summary=summary, user=u, state=TSTATES.pop(), topic=TOPICS.pop()) if num[0] % 2: kwargs.update(site=SITES.pop()) if num[0] % 4: kwargs.update(private=True) else: kwargs.update(private=False) if num[0] % 5: kwargs.update(end_user=END_USERS.pop()) # if False: # kwargs.update(project=PROJECTS.pop()) obj = Ticket(**kwargs) yield obj # if obj.state.active: # yield Vote( # votable=obj, user=WORKERS.pop(), state=VSTATES.pop()) yield ticket("Föö fails to bar when baz") yield ticket("Bar is not always baz") yield ticket("Baz sucks") yield ticket("Foo and bar don't baz") yield ticket("Cannot create Foo", description="""<p>When I try to create a <b>Foo</b>, then I get a <b>Bar</b> instead of a Foo.</p>""") yield ticket("Sell bar in baz") yield ticket("No Foo after deleting Bar") yield ticket("Is there any Bar in Foo?") yield ticket("Foo never matches Bar") yield ticket("Where can I find a Foo when bazing Bazes?") yield ticket("Class-based Foos and Bars?") yield ticket("Foo cannot bar") # Example of memo markup: yield ticket("Bar cannot foo", description="""<p>Linking to [ticket 1] and to [url http://luc.lino-framework.org/blog/2015/0923.html blog].</p> """) yield ticket("Bar cannot baz") yield ticket("Bars have no foo") yield ticket("How to get bar from foo") TEXTS = Cycler(""" Foo never bars No more foo when bar is gone Cannot delete foo Why is foo so bar Irritating message when bar How can I see where bar? Misc optimizations in Baz Default account in invoices per partner 'NoneType' object has no attribute 'isocode' """.strip().splitlines()) # n = Ticket.objects.count() for i in range(100): # yield ticket("Ticket {}".format(i+n+1)) yield ticket(TEXTS.pop()) if dd.is_installed('meetings'): WTYPES = Cycler(WishTypes.objects()) MILESTONES = Cycler(Milestone.objects.all()) for t in Ticket.objects.all(): # t.set_author_votes() if t.id % 4: yield Deployment( milestone=MILESTONES.pop(), ticket=t, wish_type=WTYPES.pop()) yield Link( type=LinkTypes.requires, parent=Ticket.objects.get(pk=1), child=Ticket.objects.get(pk=2)) # yield EntryType(**dd.str2kw('name', _('Release note'))) # yield EntryType(**dd.str2kw('name', _('Feature'))) # yield EntryType(**dd.str2kw('name', _('Upgrade instruction'))) # ETYPES = Cycler(EntryType.objects.all()) # TIMES = Cycler('12:34', '8:30', '3:45', '6:02') #blogger = USERS.pop() # def entry(offset, title, body, **kwargs): # kwargs['user'] = blogger # kwargs['entry_type'] = ETYPES.pop() # kwargs['pub_date'] = dd.today(offset) # kwargs['pub_time'] = TIMES.pop() # return Entry(title=title, body=body, **kwargs) # yield entry(-3, "Hello, world!", "This is our first blog entry.") # e = entry(-2, "Hello again", "Our second blog entry is about [ticket 1]") # yield e # yield Interest(owner=e, topic=TOPICS.pop()) # e = entry(-1, "Our third entry", """\ # Yet another blog entry about [ticket 1] and [ticket 2]. # This entry has two taggings""") # yield e # yield Interest(owner=e, topic=TOPICS.pop()) # yield Interest(owner=e, topic=TOPICS.pop()) for U in User.objects.all(): if U.user_type >= rt.models.users.UserTypes.senior: for s in Site.objects.all(): yield Subscription(site=s, user=U)
def objects(): Line = rt.models.courses.Line Teacher = dd.plugins.courses.teacher_model Course = rt.models.courses.Course Topic = rt.models.courses.Topic Enrolment = rt.models.courses.Enrolment CourseStates = rt.models.courses.CourseStates User = rt.models.users.User EventType = rt.models.cal.EventType Guest = rt.models.cal.Guest GuestRole = rt.models.cal.GuestRole GuestStates = rt.models.cal.GuestStates EntryStates = rt.models.cal.EntryStates Event = rt.models.cal.Event Person = rt.models.contacts.Person CommentType = rt.models.comments.CommentType TrendStage = rt.models.trends.TrendStage TrendArea = rt.models.trends.TrendArea for area, stages in trends_config: ta = named(TrendArea, area) yield ta for stage in stages: kw = dict(trend_area=ta) if stage[0] == "!": stage = stage[1:] kw.update(subject_column=True) yield named(TrendStage, stage, **kw) yield EventType(**dd.str2kw('name', _("First contact"))) kw = dd.str2kw('name', _("Lesson")) kw.update(dd.str2kw('event_label', _("Lesson"))) event_type = EventType(**kw) yield event_type pupil = named(GuestRole, _("Pupil")) yield pupil yield named(GuestRole, _("Assistant")) topic_citizen = named(Topic, _("Citizen course")) yield topic_citizen topic_lang = named(Topic, _("Language courses")) yield topic_lang kw.update(topic=topic_citizen) kw = dict(event_type=event_type, guest_role=pupil) yield named(Line, _("Citizen course"), **kw) kw.update(topic=topic_lang) alpha = named(Line, _("Alphabetisation"), **kw) yield alpha yield named(Line, _("German for beginners"), **kw) yield named(Line, _("German A1+"), **kw) yield named(Line, _("German A2"), **kw) yield named(Line, _("German A2 (women)"), **kw) yield named(CommentType, _("Phone call")) yield named(CommentType, _("Visit")) yield named(CommentType, _("Individual consultation")) yield named(CommentType, _("Internal meeting")) yield named(CommentType, _("Meeting with partners")) laura = Teacher(first_name="Laura", last_name="Lieblig") yield laura yield User(username="******", user_type=UserTypes.teacher, partner=laura) yield User(username="******", user_type=UserTypes.user) yield User(username="******", user_type=UserTypes.user) yield User(username="******", user_type=UserTypes.auditor) yield User(username="******", user_type=UserTypes.coordinator) yield User(username="******", user_type=UserTypes.secretary) USERS = Cycler( User.objects.exclude(user_type__in=(UserTypes.auditor, UserTypes.admin))) kw = dict(monday=True, tuesday=True, thursday=True, friday=True) kw.update(line=alpha, start_date=dd.demo_date(-30), start_time="9:00", end_time="12:00", max_date=dd.demo_date(10), state=CourseStates.active, every_unit=Recurrencies.daily, user=USERS.pop(), teacher=laura, max_places=5) yield Course(**kw) kw.update(start_time="14:00", end_time="17:00", user=USERS.pop(), max_places=15) yield Course(**kw) kw.update(start_time="18:00", end_time="20:00", user=USERS.pop(), max_places=15) yield Course(**kw) PUPILS = Cycler(dd.plugins.courses.pupil_model.objects.all()) # print(20170302, dd.plugins.courses.pupil_model.objects.all()) COURSES = Cycler(Course.objects.all()) STATES = Cycler(EnrolmentStates.objects()) def fits(course, pupil): if course.max_places and course.get_free_places() == 0: return False if Enrolment.objects.filter(course=course, pupil=pupil).count(): return False return True def enrol(pupil): course = COURSES.pop() if fits(course, pupil): kw = dict(user=USERS.pop(), course=course, pupil=pupil) kw.update(request_date=dd.demo_date(-i)) kw.update(state=STATES.pop()) return Enrolment(**kw) for i, p in enumerate( dd.plugins.courses.pupil_model.objects.order_by('id')): yield enrol(p) if i % 2 == 0: yield enrol(p) if i % 3 == 0: yield enrol(p) ar = rt.login('robin') for obj in Course.objects.all(): obj.update_auto_events(ar) # Suggested calendar entries older than 7 days should be marked as # either took_place or cancelled. qs = Event.objects.filter(start_date__lte=dd.demo_date(-7), state=EntryStates.suggested) for i, obj in enumerate(qs): if i % 9: obj.state = EntryStates.took_place else: obj.state = EntryStates.cancelled obj.full_clean() obj.save() # participants of events which took place should be marked as # either absent or present or excused: qs = Guest.objects.filter( event__start_date__lte=dd.demo_date(-7), event__state=EntryStates.took_place).order_by('id') STATES = Cycler(GuestStates.get_list_items()) for i, obj in enumerate(qs): obj.state = STATES.pop() # if i % 8: # obj.state = GuestStates.present # elif i % 3: # obj.state = GuestStates.missing # else: # obj.state = GuestStates.excused obj.full_clean() obj.save()
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)
def tickets_objects(): # was previously in tickets User = rt.models.users.User Company = rt.models.contacts.Company Topic = rt.models.topics.Topic TT = rt.models.tickets.TicketType Ticket = rt.models.tickets.Ticket # Competence = rt.models.tickets.Competence Interest = rt.models.topics.Interest Milestone = dd.plugins.tickets.milestone_model # Milestone = rt.models.deploy.Milestone if Milestone: Deployment = rt.models.deploy.Deployment WishTypes = rt.models.deploy.WishTypes Project = rt.models.tickets.Project # Site = rt.models.tickets.Site Site = dd.plugins.tickets.site_model Link = rt.models.tickets.Link LinkTypes = rt.models.tickets.LinkTypes # EntryType = rt.models.blogs.EntryType # Entry = rt.models.blogs.Entry # Tagging = rt.models.blogs.Tagging # Line = rt.models.courses.Line # List = rt.models.lists.List cons = rt.models.users.UserTypes.consultant dev = rt.models.users.UserTypes.developer yield create_user("marc", rt.models.users.UserTypes.user) yield create_user("mathieu", rt.models.users.UserTypes.user) yield create_user("luc", dev) yield create_user("jean", rt.models.users.UserTypes.senior) USERS = Cycler(User.objects.all()) WORKERS = Cycler(User.objects.filter(username__in='luc jean'.split())) END_USERS = Cycler(User.objects.filter(user_type='')) yield named(TT, _("Bugfix")) yield named(TT, _("Enhancement")) yield named(TT, _("Upgrade")) # sprint = named(Line, _("Sprint")) # yield sprint TYPES = Cycler(TT.objects.all()) yield Topic(name="Lino Core", ref="linõ") yield Topic(name="Lino Welfare", ref="welfäre") yield Topic(name="Lino Cosi", ref="così") yield Topic(name="Lino Voga", ref="faggio") # ref differs from name TOPICS = Cycler(Topic.objects.all()) for name in "Bus.co farm.co share.co".split(): obj = Company(name=name) yield obj yield Site(name=name + ".com", partner=obj) COMPANIES = Cycler(Company.objects.all()) yield Company(name="in3x") for u in Company.objects.exclude(name="in3x"): for i in range(3): yield Interest(owner=u, topic=TOPICS.pop()) roletype = rt.models.contacts.RoleType yield roletype(**dd.babel_values('name', en="Manager", fr='Gérant', de="Geschäftsführer", et="Tegevjuht")) yield roletype(**dd.babel_values( 'name', en="Director", fr='Directeur', de="Direktor", et="Direktor")) yield roletype(**dd.babel_values( 'name', en="Secretary", fr='Secrétaire', de="Sekretär", et="Sekretär")) yield roletype(**dd.babel_values('name', en="IT Manager", fr='Gérant informatique', de="EDV-Manager", et="IT manager")) yield roletype(**dd.babel_values( 'name', en="President", fr='Président', de="Präsident", et="President")) # RTYPES = Cycler(ReportingTypes.objects()) prj1 = Project( name="Framewörk", ref="linö", private=False, company=COMPANIES.pop(), # reporting_type=RTYPES.pop(), start_date=i2d(20090101)) yield prj1 yield Project( name="Téam", ref="téam", start_date=i2d(20100101), # reporting_type=RTYPES.pop(), company=COMPANIES.pop(), parent=prj1, private=True) prj2 = Project( name="Documentatión", ref="docs", private=False, # reporting_type=RTYPES.pop(), company=COMPANIES.pop(), start_date=i2d(20090101), parent=prj1) yield prj2 yield Project(name="Research", ref="research", private=False, company=COMPANIES.pop(), start_date=i2d(19980101), parent=prj2) yield Project( name="Shop", ref="shop", private=False, # reporting_type=RTYPES.pop(), company=COMPANIES.pop(), start_date=i2d(20120201), end_date=i2d(20120630)) PROJECTS = Cycler(Project.objects.all()) # for u in User.objects.all(): # yield Competence(user=u, project=PROJECTS.pop()) # yield Competence(user=u, project=PROJECTS.pop()) SITES = Cycler(Site.objects.exclude(name="pypi")) # LISTS = Cycler(List.objects.all()) if Milestone: for i in range(7): site = SITES.pop() d = dd.today(i * 2 - 20) kw = dict( user=WORKERS.pop(), start_date=d, # line=sprint, # project=PROJECTS.pop(), # expected=d, reached=d, # expected=d, reached=d, name="{}@{}".format(d.strftime("%Y%m%d"), site), # list=LISTS.pop() ) kw[Milestone.site_field_name] = site yield Milestone(**kw) # yield Milestone(site=SITES.pop(), expected=dd.today()) # yield Milestone(project=PROJECTS.pop(), expected=dd.today()) SITES = Cycler(Site.objects.all()) TicketStates = rt.models.tickets.TicketStates TSTATES = Cycler(TicketStates.objects()) Vote = rt.models.votes.Vote VoteStates = rt.models.votes.VoteStates VSTATES = Cycler(VoteStates.objects()) num = [0] def ticket(summary, **kwargs): num[0] += 1 u = WORKERS.pop() kwargs.update(ticket_type=TYPES.pop(), summary=summary, user=u, state=TSTATES.pop(), topic=TOPICS.pop()) if num[0] % 2: kwargs.update(site=SITES.pop()) if num[0] % 4: kwargs.update(private=True) if num[0] % 5: kwargs.update(end_user=END_USERS.pop()) if False: kwargs.update(project=PROJECTS.pop()) obj = Ticket(**kwargs) yield obj if obj.state.active: yield Vote(votable=obj, user=WORKERS.pop(), state=VSTATES.pop()) yield ticket("Föö fails to bar when baz", project=PROJECTS.pop()) yield ticket("Bar is not always baz", project=PROJECTS.pop()) yield ticket("Baz sucks") yield ticket("Foo and bar don't baz", project=PROJECTS.pop()) # a ticket without project: yield ticket("Cannot create Foo", description="""<p>When I try to create a <b>Foo</b>, then I get a <b>Bar</b> instead of a Foo.</p>""") yield ticket("Sell bar in baz", project=PROJECTS.pop()) yield ticket("No Foo after deleting Bar", project=PROJECTS.pop()) yield ticket("Is there any Bar in Foo?", project=PROJECTS.pop()) yield ticket("Foo never matches Bar", project=PROJECTS.pop()) yield ticket("Where can I find a Foo when bazing Bazes?", project=PROJECTS.pop()) yield ticket("Class-based Foos and Bars?", project=PROJECTS.pop()) yield ticket("Foo cannot bar", project=PROJECTS.pop()) # Example of memo markup: yield ticket("Bar cannot foo", project=PROJECTS.pop(), description="""<p>Linking to [ticket 1] and to [url http://luc.lino-framework.org/blog/2015/0923.html blog].</p> """) yield ticket("Bar cannot baz", project=PROJECTS.pop()) yield ticket("Bars have no foo", project=PROJECTS.pop()) yield ticket("How to get bar from foo", project=PROJECTS.pop()) n = Ticket.objects.count() for i in range(100): yield ticket("Ticket {}".format(i + n + 1), project=PROJECTS.pop()) if Milestone: WTYPES = Cycler(WishTypes.objects()) MILESTONES = Cycler(Milestone.objects.all()) for t in Ticket.objects.all(): t.set_author_votes() if t.id % 4: yield Deployment(milestone=MILESTONES.pop(), ticket=t, wish_type=WTYPES.pop()) yield Link(type=LinkTypes.requires, parent=Ticket.objects.get(pk=1), child=Ticket.objects.get(pk=2))
def tickets_objects(): # was previously in tickets User = rt.models.users.User Company = rt.models.contacts.Company # Topic = rt.models.topics.Topic TT = rt.models.tickets.TicketType Ticket = rt.models.tickets.Ticket # Competence = rt.models.tickets.Competence # Interest = rt.models.topics.Interest Milestone = dd.plugins.tickets.milestone_model # Milestone = rt.models.deploy.Milestone # Project = rt.models.tickets.Project # Site = rt.models.tickets.Site Site = dd.plugins.tickets.site_model Link = rt.models.tickets.Link LinkTypes = rt.models.tickets.LinkTypes Subscription = rt.models.tickets.Subscription #EntryType = rt.models.blogs.EntryType #Entry = rt.models.blogs.Entry # Star = rt.models.stars.Star # Tagging = rt.models.blogs.Tagging # Line = rt.models.courses.Line List = rt.models.lists.List cons = UserTypes.consultant dev = UserTypes.developer end_user = UserTypes.user yield create_user("marc", UserTypes.user) yield create_user("mathieu", cons) yield create_user("luc", dev) yield create_user("jean", UserTypes.senior) # USERS = Cycler(User.objects.all()) WORKERS = Cycler( User.objects.filter(username__in='mathieu luc jean'.split())) END_USERS = Cycler( User.objects.filter(user_type=rt.models.users.UserTypes.user)) reporter_types = [ t for t in UserTypes.get_list_items() if t.has_required_roles([Reporter]) ] REPORTERS = Cycler(User.objects.filter(user_type__in=reporter_types)) yield named(TT, _("Bugfix")) yield named(TT, _("Enhancement")) yield named(TT, _("Upgrade")) # sprint = named(Line, _("Sprint")) # yield sprint TYPES = Cycler(TT.objects.all()) # yield Topic(name="Lino Core", ref="linõ") # yield Topic(name="Lino Welfare", ref="welfäre") # yield Topic(name="Lino Cosi", ref="così") # yield Topic(name="Lino Voga", ref="faggio") # ref differs from name # TOPICS = Cycler(Topic.objects.all()) RTYPES = Cycler(ReportingTypes.objects()) for name in "welket welsch pypi".split(): obj = Company(name=name) yield obj yield Site(name=name, company=obj, reporting_type=RTYPES.pop()) COMPANIES = Cycler(Company.objects.all()) yield Company(name="Saffre-Rumma") # for u in Company.objects.exclude(name="pypi"): # for i in range(3): # yield Interest(owner=u, topic=TOPICS.pop()) # prj1 = Project( # name="Framewörk", ref="linö", private=False, # company=COMPANIES.pop(), # reporting_type=RTYPES.pop(), # start_date=i2d(20090101)) # yield prj1 # yield Project( # name="Téam", ref="téam", start_date=i2d(20100101), # reporting_type=RTYPES.pop(), # company=COMPANIES.pop(), # parent=prj1, private=True) # prj2 = Project( # name="Documentatión", ref="docs", private=False, # reporting_type=RTYPES.pop(), # company=COMPANIES.pop(), # start_date=i2d(20090101), parent=prj1) # yield prj2 # yield Project( # name="Research", ref="research", private=False, # company=COMPANIES.pop(), # start_date=i2d(19980101), parent=prj2) # yield Project( # name="Shop", ref="shop", private=False, # reporting_type=RTYPES.pop(), # company=COMPANIES.pop(), # start_date=i2d(20120201), end_date=i2d(20120630)) # PROJECTS = Cycler(Project.objects.all()) # for u in User.objects.all(): # yield Competence(user=u, project=PROJECTS.pop()) # yield Competence(user=u, project=PROJECTS.pop()) if dd.is_installed('meetings'): SITES = Cycler(Site.objects.exclude(name="pypi")) # LISTS = Cycler(List.objects.all()) for i in range(7): site = SITES.pop() d = dd.today(i * 2 - 20) kw = dict( user=WORKERS.pop(), start_date=d, # line=sprint, # project=PROJECTS.pop(), # expected=d, reached=d, # expected=d, reached=d, name="{}@{}".format(d.strftime("%Y%m%d"), site), # list=LISTS.pop() ) kw[Milestone.site_field_name] = site yield Milestone(**kw) # yield Milestone(site=SITES.pop(), expected=dd.today()) # yield Milestone(project=PROJECTS.pop(), expected=dd.today()) SITES = Cycler(Site.objects.all()) TicketStates = rt.models.tickets.TicketStates TSTATES = Cycler(TicketStates.objects()) # Vote = rt.models.votes.Vote # VoteStates = rt.models.votes.VoteStates # VSTATES = Cycler(VoteStates.objects()) num = [0] def ticket(summary, **kwargs): num[0] += 1 u = REPORTERS.pop() kwargs.update(ticket_type=TYPES.pop(), summary=summary, user=u, state=TSTATES.pop()) if num[0] % 2: kwargs.update(site=SITES.pop()) if num[0] % 4: kwargs.update(private=True) else: kwargs.update(private=False) if u.user_type.has_required_roles([Worker]): if num[0] % 5: kwargs.update(end_user=END_USERS.pop()) # if False: # kwargs.update(project=PROJECTS.pop()) obj = Ticket(**kwargs) yield obj # if obj.state.active: # yield Vote( # votable=obj, user=WORKERS.pop(), state=VSTATES.pop()) yield ticket("Föö fails to bar when baz") yield ticket("Bar is not always baz") yield ticket("Baz sucks") yield ticket("Foo and bar don't baz") yield ticket("Cannot create Foo", description="""<p>When I try to create a <b>Foo</b>, then I get a <b>Bar</b> instead of a Foo.</p>""") yield ticket("Sell bar in baz") yield ticket("No Foo after deleting Bar") yield ticket("Is there any Bar in Foo?") yield ticket("Foo never matches Bar") yield ticket("Where can I find a Foo when bazing Bazes?") yield ticket("Class-based Foos and Bars?") yield ticket("Foo cannot bar") # Example of memo markup: yield ticket("Bar cannot foo", description="""<p>Linking to [ticket 1] and to [url http://luc.lino-framework.org/blog/2015/0923.html blog].</p> """) yield ticket("Bar cannot baz") yield ticket("Bars have no foo") yield ticket("How to get bar from foo") TEXTS = Cycler([ ln.strip() for ln in """ Foo never bars No more foo when bar is gone Cannot delete foo Why is foo so bar Irritating message when bar How can I see where bar? Misc optimizations in Baz Default account in invoices per partner 'NoneType' object has no attribute 'isocode' """.splitlines() if ln.strip() ]) # n = Ticket.objects.count() for i in range(100): # yield ticket("Ticket {}".format(i+n+1)) yield ticket(TEXTS.pop()) if dd.is_installed('meetings'): Deployment = rt.models.deploy.Deployment WishTypes = rt.models.deploy.WishTypes WTYPES = Cycler(WishTypes.objects()) MILESTONES = Cycler(Milestone.objects.all()) for t in Ticket.objects.all(): # t.set_author_votes() if t.id % 4: yield Deployment(milestone=MILESTONES.pop(), ticket=t, wish_type=WTYPES.pop()) yield Link(type=LinkTypes.requires, parent=Ticket.objects.get(pk=1), child=Ticket.objects.get(pk=2)) # yield EntryType(**dd.str2kw('name', _('Release note'))) # yield EntryType(**dd.str2kw('name', _('Feature'))) # yield EntryType(**dd.str2kw('name', _('Upgrade instruction'))) # ETYPES = Cycler(EntryType.objects.all()) # TIMES = Cycler('12:34', '8:30', '3:45', '6:02') #blogger = USERS.pop() # def entry(offset, title, body, **kwargs): # kwargs['user'] = blogger # kwargs['entry_type'] = ETYPES.pop() # kwargs['pub_date'] = dd.today(offset) # kwargs['pub_time'] = TIMES.pop() # return Entry(title=title, body=body, **kwargs) # yield entry(-3, "Hello, world!", "This is our first blog entry.") # e = entry(-2, "Hello again", "Our second blog entry is about [ticket 1]") # yield e # yield Interest(owner=e, topic=TOPICS.pop()) # e = entry(-1, "Our third entry", """\ # Yet another blog entry about [ticket 1] and [ticket 2]. # This entry has two taggings""") # yield e # yield Interest(owner=e, topic=TOPICS.pop()) # yield Interest(owner=e, topic=TOPICS.pop()) for u in User.objects.all(): if u.user_type.has_required_roles([Reporter]): if not u.user_type.has_required_roles([TicketsStaff]): yield Subscription(site=SITES.pop(), user=u, primary=True)
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)
def objects(): Line = rt.models.courses.Line Teacher = dd.plugins.courses.teacher_model Course = rt.models.courses.Course Topic = rt.models.courses.Topic Enrolment = rt.models.courses.Enrolment User = rt.models.users.User EventType = rt.models.cal.EventType Guest = rt.models.cal.Guest GuestRole = rt.models.cal.GuestRole GuestStates = rt.models.cal.GuestStates EntryStates = rt.models.cal.EntryStates Event = rt.models.cal.Event Person = rt.models.contacts.Person CommentType = rt.models.comments.CommentType TrendStage = rt.models.trends.TrendStage TrendArea = rt.models.trends.TrendArea for area, stages in trends_config: ta = named(TrendArea, area) yield ta for stage in stages: yield named(TrendStage, stage, trend_area=ta) yield EventType(**dd.str2kw('name', _("First contact"))) kw = dd.str2kw('name', _("Lesson")) kw.update(dd.str2kw('event_label', _("Lesson"))) event_type = EventType(**kw) yield event_type pupil = named(GuestRole, _("Pupil")) yield pupil yield named(GuestRole, _("Assistant")) topic_citizen = named(Topic, _("Citizen course")) yield topic_citizen topic_lang = named(Topic, _("Language courses")) yield topic_lang kw.update(topic=topic_citizen) kw = dict(event_type=event_type, guest_role=pupil) yield named(Line, _("Citizen course"), **kw) kw.update(topic=topic_lang) alpha = named(Line, _("Alphabetisation"), **kw) yield alpha yield named(Line, _("German for beginners"), **kw) yield named(Line, _("German A1+"), **kw) yield named(Line, _("German A2"), **kw) yield named(Line, _("German A2 (women)"), **kw) yield named(CommentType, _("Phone call")) yield named(CommentType, _("Visit")) yield named(CommentType, _("Individual consultation")) yield named(CommentType, _("Internal meeting")) yield named(CommentType, _("Meeting with partners")) laura = Teacher(first_name="Laura", last_name="Lieblig") yield laura yield User(username="******", user_type=UserTypes.teacher, partner=laura) yield User(username="******", user_type=UserTypes.user) yield User(username="******", user_type=UserTypes.auditor) yield User(username="******", user_type=UserTypes.coordinator) yield User(username="******", user_type=UserTypes.secretary) USERS = Cycler(User.objects.exclude( user_type__in=(UserTypes.auditor, UserTypes.admin))) kw = dict(monday=True, tuesday=True, thursday=True, friday=True) kw.update( line=alpha, start_date=dd.demo_date(-30), start_time="9:00", end_time="12:00", max_date=dd.demo_date(10), every_unit=Recurrencies.daily, user=USERS.pop(), teacher=laura, max_places=5) yield Course(**kw) kw.update(start_time="14:00", end_time="17:00", user=USERS.pop()) yield Course(**kw) PUPILS = Cycler(dd.plugins.courses.pupil_model.objects.all()) # print(20170302, dd.plugins.courses.pupil_model.objects.all()) COURSES = Cycler(Course.objects.all()) STATES = Cycler(EnrolmentStates.objects()) def fits(course, pupil): if course.max_places and course.get_free_places() == 0: return False if Enrolment.objects.filter(course=course, pupil=pupil).count(): return False return True for i in range(10): course = COURSES.pop() pupil = PUPILS.pop() while not fits(course, pupil): course = COURSES.pop() kw = dict(user=USERS.pop(), course=course, pupil=pupil) kw.update(request_date=dd.demo_date(-i)) kw.update(state=STATES.pop()) yield Enrolment(**kw) ar = rt.login('robin') for obj in Course.objects.all(): obj.update_auto_events(ar) # Suggested calendar entries older than 7 days should be marked as # either took_place or cancelled. qs = Event.objects.filter( start_date__lte=dd.demo_date(-7), state=EntryStates.suggested) for i, obj in enumerate(qs): if i % 9: obj.state = EntryStates.took_place else: obj.state = EntryStates.cancelled obj.full_clean() obj.save() # participants of events which took place should be marked as # either absent or present or excused: qs = Guest.objects.filter( event__start_date__lte=dd.demo_date(-7), event__state=EntryStates.took_place) for i, obj in enumerate(qs): if i % 9: obj.state = GuestStates.present elif i % 3: obj.state = GuestStates.absent else: obj.state = GuestStates.excused obj.full_clean() obj.save()
def tickets_objects(): # was previously in tickets User = rt.models.users.User Company = rt.models.contacts.Company Topic = rt.models.topics.Topic TT = rt.models.tickets.TicketType Ticket = rt.models.tickets.Ticket # Competence = rt.models.tickets.Competence Interest = rt.models.topics.Interest Milestone = dd.plugins.tickets.milestone_model # Milestone = rt.models.deploy.Milestone if Milestone: Deployment = rt.models.deploy.Deployment WishTypes = rt.models.deploy.WishTypes Project = rt.models.tickets.Project # Site = rt.models.tickets.Site Site = dd.plugins.tickets.site_model Link = rt.models.tickets.Link LinkTypes = rt.models.tickets.LinkTypes # EntryType = rt.models.blogs.EntryType # Entry = rt.models.blogs.Entry # Tagging = rt.models.blogs.Tagging # Line = rt.models.courses.Line # List = rt.models.lists.List cons = rt.models.users.UserTypes.consultant dev = rt.models.users.UserTypes.developer yield create_user("marc", rt.models.users.UserTypes.user) yield create_user("mathieu", rt.models.users.UserTypes.user) yield create_user("luc", dev) yield create_user("jean", rt.models.users.UserTypes.senior) USERS = Cycler(User.objects.all()) WORKERS = Cycler(User.objects.filter( username__in='luc jean'.split())) END_USERS = Cycler(User.objects.filter(user_type='')) yield named(TT, _("Bugfix")) yield named(TT, _("Enhancement")) yield named(TT, _("Upgrade")) # sprint = named(Line, _("Sprint")) # yield sprint TYPES = Cycler(TT.objects.all()) yield Topic(name="Lino Core", ref="linõ") yield Topic(name="Lino Welfare", ref="welfäre") yield Topic(name="Lino Cosi", ref="così") yield Topic(name="Lino Voga", ref="faggio") # ref differs from name TOPICS = Cycler(Topic.objects.all()) for name in "Bus.co farm.co share.co".split(): obj = Company(name=name) yield obj yield Site(name=name + ".com", partner=obj) COMPANIES = Cycler(Company.objects.all()) yield Company(name="in3x") for u in Company.objects.exclude(name="in3x"): for i in range(3): yield Interest(owner=u, topic=TOPICS.pop()) roletype = rt.models.contacts.RoleType yield roletype(**dd.babel_values('name', en="Manager", fr='Gérant', de="Geschäftsführer", et="Tegevjuht")) yield roletype(**dd.babel_values('name', en="Director", fr='Directeur', de="Direktor", et="Direktor")) yield roletype(**dd.babel_values('name', en="Secretary", fr='Secrétaire', de="Sekretär", et="Sekretär")) yield roletype(**dd.babel_values('name', en="IT Manager", fr='Gérant informatique', de="EDV-Manager", et="IT manager")) yield roletype(**dd.babel_values('name', en="President", fr='Président', de="Präsident", et="President")) # RTYPES = Cycler(ReportingTypes.objects()) prj1 = Project( name="Framewörk", ref="linö", private=False, company=COMPANIES.pop(), # reporting_type=RTYPES.pop(), start_date=i2d(20090101)) yield prj1 yield Project( name="Téam", ref="téam", start_date=i2d(20100101), # reporting_type=RTYPES.pop(), company=COMPANIES.pop(), parent=prj1, private=True) prj2 = Project( name="Documentatión", ref="docs", private=False, # reporting_type=RTYPES.pop(), company=COMPANIES.pop(), start_date=i2d(20090101), parent=prj1) yield prj2 yield Project( name="Research", ref="research", private=False, company=COMPANIES.pop(), start_date=i2d(19980101), parent=prj2) yield Project( name="Shop", ref="shop", private=False, # reporting_type=RTYPES.pop(), company=COMPANIES.pop(), start_date=i2d(20120201), end_date=i2d(20120630)) PROJECTS = Cycler(Project.objects.all()) # for u in User.objects.all(): # yield Competence(user=u, project=PROJECTS.pop()) # yield Competence(user=u, project=PROJECTS.pop()) SITES = Cycler(Site.objects.exclude(name="pypi")) # LISTS = Cycler(List.objects.all()) if Milestone: for i in range(7): site = SITES.pop() d = dd.today(i*2-20) kw = dict( user=WORKERS.pop(), start_date=d, # line=sprint, # project=PROJECTS.pop(), # expected=d, reached=d, # expected=d, reached=d, name="{}@{}".format(d.strftime("%Y%m%d"), site), # list=LISTS.pop() ) kw[Milestone.site_field_name] = site yield Milestone(**kw) # yield Milestone(site=SITES.pop(), expected=dd.today()) # yield Milestone(project=PROJECTS.pop(), expected=dd.today()) SITES = Cycler(Site.objects.all()) TicketStates = rt.models.tickets.TicketStates TSTATES = Cycler(TicketStates.objects()) Vote = rt.models.votes.Vote VoteStates = rt.models.votes.VoteStates VSTATES = Cycler(VoteStates.objects()) num = [0] def ticket(summary, **kwargs): num[0] += 1 u = WORKERS.pop() kwargs.update( ticket_type=TYPES.pop(), summary=summary, user=u, state=TSTATES.pop(), topic=TOPICS.pop()) if num[0] % 2: kwargs.update(site=SITES.pop()) if num[0] % 4: kwargs.update(private=True) if num[0] % 5: kwargs.update(end_user=END_USERS.pop()) if False: kwargs.update(project=PROJECTS.pop()) obj = Ticket(**kwargs) yield obj if obj.state.active: yield Vote( votable=obj, user=WORKERS.pop(), state=VSTATES.pop()) yield ticket( "Föö fails to bar when baz", project=PROJECTS.pop()) yield ticket("Bar is not always baz", project=PROJECTS.pop()) yield ticket("Baz sucks") yield ticket("Foo and bar don't baz", project=PROJECTS.pop()) # a ticket without project: yield ticket("Cannot create Foo", description="""<p>When I try to create a <b>Foo</b>, then I get a <b>Bar</b> instead of a Foo.</p>""") yield ticket("Sell bar in baz", project=PROJECTS.pop()) yield ticket("No Foo after deleting Bar", project=PROJECTS.pop()) yield ticket("Is there any Bar in Foo?", project=PROJECTS.pop()) yield ticket("Foo never matches Bar", project=PROJECTS.pop()) yield ticket("Where can I find a Foo when bazing Bazes?", project=PROJECTS.pop()) yield ticket("Class-based Foos and Bars?", project=PROJECTS.pop()) yield ticket("Foo cannot bar", project=PROJECTS.pop()) # Example of memo markup: yield ticket("Bar cannot foo", project=PROJECTS.pop(), description="""<p>Linking to [ticket 1] and to [url http://luc.lino-framework.org/blog/2015/0923.html blog].</p> """) yield ticket("Bar cannot baz", project=PROJECTS.pop()) yield ticket("Bars have no foo", project=PROJECTS.pop()) yield ticket("How to get bar from foo", project=PROJECTS.pop()) n = Ticket.objects.count() for i in range(100): yield ticket("Ticket {}".format(i+n+1), project=PROJECTS.pop()) if Milestone: WTYPES = Cycler(WishTypes.objects()) MILESTONES = Cycler(Milestone.objects.all()) for t in Ticket.objects.all(): t.set_author_votes() if t.id % 4: yield Deployment( milestone=MILESTONES.pop(), ticket=t, wish_type=WTYPES.pop()) yield Link( type=LinkTypes.requires, parent=Ticket.objects.get(pk=1), child=Ticket.objects.get(pk=2))