Loading order of the demo fixtures¶
Our convention is to define the following names of demo fixtures:
std minimal_ledger demo demo_bookings payments demo2 demo3 checksummaries checkdata
The loading order of demo data is important because the fixtures of the Lino Extensions Library are inter-dependent. They create users, cities, journals, contacts, invoices, payments, reports, notifications, ... you cannot write invoices if you have no customers, and an accounting report makes no sense if bank statements haven't been entered.
Lino basically uses Django's approach of finding demo fixtures: When Django gets a series of fixture names to load, it will load them in the specified order, and for each fixture will ask each plugin to load that fixture. If a plugin doesn't define a fixture of that name, it simply does nothing.
std fixtures should add default database content expected to be
in a virgin database even when no "demo data" is requested. This should always
be the first fixture of your
demo_fixtures setting. It is provided by the following
lino.modlib.usersCreate an excerpt type "Welcome letter" (when appypod and excerpts are installed)
lino_xl.lib.bevatcreates an excerpt type for the VAT declaration.
lino_xl.lib.contactsadds a series of default company types.
lino_xl.lib.sheetscreates common sheet items and assigns them to their accounts.
lino_xl.lib.householdsadds some household member roles.
lino_xl.lib.calinstalls standard calendar entry types, including a set of holidays. (TODO: make them more configurable.) The default value of
lino.modlib.system.SiteConfig.hide_events_beforeis set to January 1st (of the current year when demo_date is after April and of the previous year when demo_date is before April). See also Defining holidays.
lino_xl.lib.salescreates some common paper types.
lino_xl.lib.ledgeradds a minimal set of journals and match rules.
lino_xl.lib.vatsets VAT column for common accounts
lino_xl.lib.anacreates analytic accounts and assigns one of them to each general account with
Adds master demo data.
lino.modlib.usersadds fictive root users (administrators), one for each language. These names are being used by the online demo sites. We are trying to sound realistic without actually hitting any real person.
lino_xl.lib.humanlinkscreates two fictive families (Hubert & Gaby Frisch-Frogemuth with their children and grand-children).
lino_xl.lib.sepaadds some commonly known companies and their bank accounts. These are real data collected from Internet.
lino_xl.lib.contactsadds a series of fictive persons and companies.
lino_xl.lib.mailboxAdds a mailbox named "team".
lino_xl.lib.contacts.Partner.payment_termof all partners.
lino_xl.lib.vatSets fictive VAT id for all companies and then a VAT regime for all partners.
lino_xl.lib.sheetsadds an excerpt type to print a sheets.Report
lino_xl.lib.householdscreates some households by marrying a few Persons. Every third household gets divorced: we put an end_date to that membership and create another membership for the same person with another person.
lino_xl.lib.groupscreates some user groups and users Andy, Bert and Chloé.
Adds more demo data (originally "bookings").
Should come after
lino_xl.lib.invoicingcreates monthly invoicing plans and executes them. Starts a January 1st of
lino_xl.lib.ledger.Plugin.start_year. Stops 2 months before today (we "forgot" to run invoicing the last two months) because we want to have something in our invoicing plan.
lino_xl.lib.ledgerCreates fictive monthly purchase invoices. For some of them it creates a dummy upload file that represents the source document.
lino_xl.lib.salescreates fictive monthly sales.
Adds even more demo data (originally "payments").
Should come after
lino_xl.lib.bevatcreates a Belgian VAT office and some VAT declarations.
lino_xl.lib.bevatscreates a Belgian VAT office and some VAT declarations.
lino_xl.lib.eevatcreates an Estonian VAT office and some VAT declarations.
lino_xl.lib.financreates automatic monthly payment orders and bank statements. Bank statements of last month are not yet entered into database
Add final demo data.
lino.modlib.userssets password 1234 for all users.
lino.modlib.commentsadds some fictive comments.
lino.modlib.notifysends a notification "The database has been initialized" to every user.
lino_xl.lib.addressesadds some additional non-primary addresses to some partners.
lino_xl.lib.sheetscreates some accounting reports (one per year).
lino_xl.lib.calgenerates 60 fictive appointments and 10 absences "for private reasons".
propagate_contact_details()for each partner.
lino_xl.lib.groupscreates a membership for every user in one or two groups and a welcome comment for each membership.
lino_xl.lib.pollscreates a response for every poll.
Should come after
This fixture should always be the last in your