예제 #1
0
파일: demo.py 프로젝트: DarioGT/lino
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)
예제 #2
0
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
예제 #3
0
파일: demo_fr.py 프로젝트: forexblog/xl
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)
예제 #4
0
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
예제 #5
0
파일: demo.py 프로젝트: forexblog/book
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())
예제 #6
0
파일: demo.py 프로젝트: TonisPiip/xl
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
예제 #7
0
파일: demo2.py 프로젝트: gary-ops/lino
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()
예제 #8
0
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()
예제 #9
0
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()
예제 #10
0
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)
예제 #11
0
파일: demo.py 프로젝트: TonisPiip/xl
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)
예제 #12
0
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)
예제 #13
0
파일: __init__.py 프로젝트: forexblog/xl
    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
예제 #14
0
파일: payments.py 프로젝트: forexblog/xl
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
예제 #15
0
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
예제 #16
0
 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())
예제 #17
0
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()
예제 #18
0
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)
예제 #19
0
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
예제 #20
0
파일: demo.py 프로젝트: TonisPiip/book
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
예제 #21
0
파일: demo2.py 프로젝트: zyrobin/lino
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
예제 #22
0
파일: demo.py 프로젝트: forexblog/book
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())
예제 #23
0
파일: demo2.py 프로젝트: forexblog/xl
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)
예제 #24
0
파일: demo.py 프로젝트: forexblog/xl
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
예제 #25
0
파일: feedback.py 프로젝트: TonisPiip/xl
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)
예제 #26
0
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
예제 #27
0
파일: payments.py 프로젝트: forexblog/xl
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
예제 #28
0
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()
예제 #29
0
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)
예제 #30
0
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)