Welcome | Get started | Dive into Lino | Contribute | Reference | More

noi1r -- noi1e with React front end

>>> from lino import startup
>>> startup('lino_book.projects.noi1r.settings')
>>> from lino.api.doctest import *
>>> ses = rt.login('robin')
>>> dd.plugins.ledger.sales_method
'direct'

Overview

The lino_book.projects.noi1r demo project (TODO)

Here is the output of walk_menu_items for this site:

>>> walk_menu_items('robin', severe=False)
... 
- Contacts --> Persons : 70
- Contacts --> Organizations : 14
- Contacts --> Partner Lists : 9
- Calendar --> My appointments : 1
- Calendar --> Overdue appointments : 1
- Calendar --> My unconfirmed appointments : 1
- Calendar --> My tasks : 1
- Calendar --> My guests : 1
- Calendar --> My presences : 1
- Calendar --> My overdue appointments : 1
- Calendar --> Calendar : (not tested)
- Working time --> My Tickets : 10
- Working time --> Active tickets : 66
- Working time --> All tickets : 117
- Working time --> Unassigned Tickets : 7
- Working time --> Reference Tickets : 1
- Working time --> My projects : 3
- Working time --> Tickets to work : 4
- Working time --> Tickets needing my feedback : 1
- Working time --> My tickets needing feedback : 1
- Working time --> Sessions : 0
- Working time --> Service Reports : 1
- Office --> My Notification messages : 61
- Office --> My Upload files : 1
- Office --> My Excerpts : 0
- Office --> My Comments : 49
- Office --> Recent comments : 336
- Publisher --> Pages : 73
- Google Contacts : 1
- Sales --> Sales invoices (SLS) : (not tested)
- Sales --> Subscription invoices (SUB) : (not tested)
- Sales --> Service reports (SRV) : (not tested)
- Sales --> Service Level Agreements (SLA) : (not tested)
- Sales --> Make Service reports : (not tested)
- Sales --> Make Sales invoices : (not tested)
- Sales --> Make Subscription invoices : (not tested)
- Configure --> Contacts --> Legal forms : 17
- Configure --> Contacts --> Functions : 6
- Configure --> Contacts --> List Types : 4
- Configure --> System --> Users : 8
- Configure --> System --> Teams : 4
- Configure --> System --> Site Parameters : (not tested)
- Configure --> System --> Background tasks : 10
- Configure --> Calendar --> Calendars : 2
- Configure --> Calendar --> Rooms : 1
- Configure --> Calendar --> Recurring events : 16
- Configure --> Calendar --> Guest roles : 1
- Configure --> Calendar --> Calendar entry types : 5
- Configure --> Calendar --> Recurrency policies : 7
- Configure --> Calendar --> Remote Calendars : 1
- Configure --> Calendar --> Planner rows : 3
- Configure --> Working time --> Ticket types : 4
- Configure --> Working time --> Projects : 7
- Configure --> Working time --> Session Types : 2
- Configure --> Office --> Library volumes : 1
- Configure --> Office --> Upload types : 2
- Configure --> Office --> Excerpt Types : 7
- Configure --> Office --> Comment Types : 1
- Configure --> Products --> Services : 9
- Configure --> Products --> Product Categories : 1
- Configure --> Products --> Price rules : 2
- Configure --> Products --> Transfer rules : 3
- Configure --> Sales --> Paper types : 3
- Configure --> Sales --> Flatrates : 1
- Configure --> Sales --> Follow-up rules : 5
- Configure --> Sales --> Invoicing tasks : 4
- Configure --> Places --> Countries : 10
- Configure --> Places --> Places : 81
- Configure --> Accounting --> Accounts : 21
- Configure --> Accounting --> Journals : 5
- Configure --> Accounting --> Fiscal years : 10
- Configure --> Accounting --> Accounting periods : 40
- Configure --> Accounting --> Payment terms : 9
- Explorer --> System --> content types : 111
- Explorer --> System --> Authorities : 1
- Explorer --> System --> User types : 5
- Explorer --> System --> User roles : 35
- Explorer --> System --> Third-party authorizations : 1
- Explorer --> System --> Notification messages : 422
- Explorer --> System --> All dashboard widgets : 1
- Explorer --> System --> User Statistics : 37
- Explorer --> System --> Group memberships : 8
- Explorer --> System --> Changes : 0
- Explorer --> System --> Background procedures : 9
- Explorer --> System --> Data checkers : 19
- Explorer --> System --> Data problem messages : 0
- Explorer --> Contacts --> Contact persons : 9
- Explorer --> Contacts --> Partners : 83
- Explorer --> Contacts --> List memberships : 83
- Explorer --> Contacts --> Address types : 6
- Explorer --> Contacts --> Addresses : 109
- Explorer --> Contacts --> Contact detail types : 6
- Explorer --> Contacts --> Contact details : 6
- Explorer --> Calendar --> Calendar entries : 84
- Explorer --> Calendar --> Tasks : 1
- Explorer --> Calendar --> Subscriptions : 1
- Explorer --> Calendar --> Entry states : 6
- Explorer --> Calendar --> Presence states : 5
- Explorer --> Calendar --> Task states : 5
- Explorer --> Calendar --> Planner columns : 2
- Explorer --> Calendar --> Display colors : 16
- Explorer --> Working time --> Ticket states : 9
- Explorer --> Working time --> Checks : 1
- Explorer --> Working time --> Nicknamings : 22
- Explorer --> Working time --> Sessions : 2384
- Explorer --> Working time --> Site summaries : 18
- Explorer --> Working time --> User summaries : 1092
- Explorer --> Office --> Upload files : 1
- Explorer --> Office --> Upload areas : 1
- Explorer --> Office --> Excerpts : 3
- Explorer --> Office --> Mentions : 0
- Explorer --> Office --> Comments : 337
- Explorer --> Office --> Reactions : 0
- Explorer --> Products --> Price factors : 0
- Explorer --> Products --> Provision states : 1
- Explorer --> Products --> Storage fillers : 6
- Explorer --> Products --> Delivery notes : 56
- Explorer --> Products --> Delivery items : 1265
- Explorer --> Products --> Storage movements : 115
- Explorer --> Products --> Provisions : 6
- Explorer --> Products --> Components : 4
- Explorer --> Sales --> Sales invoices : 69
- Explorer --> Sales --> Sales invoice items : 158
- Explorer --> Sales --> All subscriptions : 6
- Explorer --> Sales --> Subscription periods : 11
- Explorer --> Sales --> Invoicing plans : 2
- Explorer --> Sales --> Sales rules : 1
- Explorer --> Google API --> Syncable Contacts : 0
- Explorer --> Google API --> Syncable Events : 0
- Explorer --> Google API --> Deleted Contacts : 0
- Explorer --> Google API --> Deleted Cal Entries : 0
- Explorer --> Google API --> Sync Summaries : 0
- Explorer --> Accounting --> Common accounts : 21
- Explorer --> Accounting --> Match rules : 1
- Explorer --> Accounting --> Vouchers : 128
- Explorer --> Accounting --> Voucher types : 4
- Explorer --> Accounting --> Movements : 136
- Explorer --> Accounting --> Trade types : 6
- Explorer --> Accounting --> Journal groups : 6
- Explorer --> VAT --> VAT areas : 3
- Explorer --> VAT --> VAT regimes : 1
- Explorer --> VAT --> VAT classes : 8
- Explorer --> VAT --> VAT columns : 0
- Explorer --> VAT --> Invoices : 1
- Explorer --> VAT --> VAT rules : 1
- Site --> About : (not tested)
- Site --> User sessions : ...

Dependencies

This project needs a bit more Python packages installed than usual. They should have been installed automatically into your developer environment. In case of doubt you can also run install command manually:

>>> from django.core.management import call_command
>>> call_command('install', list=True)
... 
appy
atelier
bleach
channels
channels_redis
daphne
djangorestframework
google-api-python-client
google-auth
google-auth-httplib2
google-auth-oauthlib
imagesize
num2words
odfpy
python-lorem
pywebpush
social-auth-app-django

Don't read me

The following snippets are just for testing.

>>> url = "/api/comments/CommentsByRFC"
>>> res = test_client.get(url)
... 
Invalid master type None: /api/comments/CommentsByRFC
Traceback (most recent call last):
...
django.core.exceptions.BadRequest: Invalid master type None
>>> pprint(settings.SITE.installed_plugins)
(lino,
 django.contrib.staticfiles,
 lino.modlib.about,
 lino.modlib.printing (needed_by=lino.modlib.system),
 lino.modlib.system (needed_by=lino_react.react, needs_plugins=['lino.modlib.printing']),
 lino.modlib.jinja (needed_by=lino_react.react),
 lino_react.react (media_name=react, needs_plugins=['lino.modlib.system', 'lino.modlib.jinja']),
 django.contrib.contenttypes (needed_by=lino.modlib.gfks),
 lino.modlib.gfks (needs_plugins=['lino.modlib.system', 'django.contrib.contenttypes']),
 lino.modlib.help (needs_plugins=['lino.modlib.system']),
 lino.modlib.office (needed_by=lino_xl.lib.countries),
 lino_xl.lib.xl (needed_by=lino_xl.lib.countries),
 lino_xl.lib.countries (needed_by=lino_noi.lib.contacts, needs_plugins=['lino.modlib.office', 'lino_xl.lib.xl']),
 lino_noi.lib.contacts (extends_models=['Person'], needs_plugins=['lino_xl.lib.countries', 'lino.modlib.system']),
 social_django (needed_by=lino_noi.lib.users),
 lino_noi.lib.users (needs_plugins=['lino.modlib.system', 'social_django', 'social_django']),
 lino_noi.lib.noi (needed_by=lino_noi.lib.cal),
 lino_noi.lib.cal (extends_models=['Event'], needs_plugins=['lino_noi.lib.noi']),
 lino_xl.lib.calview (needs_plugins=['lino_xl.lib.cal']),
 lino_xl.lib.excerpts (needed_by=lino_noi.lib.tickets, needs_plugins=['lino.modlib.gfks', 'lino.modlib.printing', 'lino.modlib.office', 'lino_xl.lib.xl']),
 lino.modlib.memo (needed_by=lino.modlib.comments, needs_plugins=['lino.modlib.office', 'lino.modlib.gfks']),
 lino.modlib.comments (needed_by=lino_noi.lib.tickets, needs_plugins=['lino.modlib.memo']),
 lino.modlib.changes (needed_by=lino_noi.lib.tickets, needs_plugins=['lino.modlib.users', 'lino.modlib.gfks']),
 lino_noi.lib.tickets (extends_models=['Ticket', 'Site'], needs_plugins=['lino_xl.lib.excerpts', 'lino.modlib.comments', 'lino.modlib.changes', 'lino_noi.lib.noi']),
 lino_xl.lib.nicknames,
 lino.modlib.summaries (needed_by=lino_xl.lib.working),
 channels (needed_by=lino.modlib.linod),
 lino.modlib.linod (needed_by=lino.modlib.checkdata),
 lino.modlib.checkdata (needed_by=lino_xl.lib.working, needs_plugins=['lino.modlib.users', 'lino.modlib.gfks', 'lino.modlib.linod']),
 lino_xl.lib.working (needs_plugins=['lino.modlib.summaries', 'lino.modlib.checkdata']),
 lino_xl.lib.lists,
 lino.modlib.notify (media_name=js, needs_plugins=['lino.modlib.users', 'lino.modlib.memo', 'lino.modlib.linod']),
 lino.modlib.uploads,
 lino.modlib.export_excel,
 lino.modlib.tinymce (media_name=tinymce-3.5.11, needs_plugins=['lino.modlib.office']),
 lino.modlib.smtpd,
 lino.modlib.weasyprint,
 lino_xl.lib.appypod,
 lino.modlib.dashboard (needs_plugins=['lino.modlib.users']),
 lino_xl.lib.userstats (needs_plugins=['lino.modlib.users']),
 lino_noi.lib.groups (extends_models=['Group']),
 lino_noi.lib.products (needs_plugins=['lino_xl.lib.xl']),
 lino_xl.lib.ledger (needed_by=lino_xl.lib.vat, needs_plugins=['lino.modlib.weasyprint', 'lino_xl.lib.xl', 'lino.modlib.uploads']),
 lino_xl.lib.vat (needed_by=lino_noi.lib.sales, needs_plugins=['lino.modlib.checkdata', 'lino_xl.lib.excerpts']),
 lino_noi.lib.sales (needs_plugins=['lino.modlib.memo', 'lino_xl.lib.products', 'lino_xl.lib.vat']),
 lino_xl.lib.storage (needs_plugins=['lino_xl.lib.products', 'lino.modlib.summaries']),
 lino_xl.lib.invoicing (needed_by=lino_noi.lib.subscriptions, needs_plugins=['lino_xl.lib.sales']),
 lino_noi.lib.subscriptions (needs_plugins=['lino_xl.lib.invoicing']),
 lino.modlib.bootstrap3 (media_name=bootstrap-3.3.4, needed_by=lino.modlib.publisher, needs_plugins=['lino.modlib.jinja']),
 lino.modlib.publisher (needed_by=lino_xl.lib.pages, needs_plugins=['lino.modlib.jinja', 'lino.modlib.bootstrap3']),
 lino_xl.lib.topics (needed_by=lino_xl.lib.pages, needs_plugins=['lino_xl.lib.xl', 'lino.modlib.gfks']),
 lino_xl.lib.pages (needs_plugins=['lino.modlib.linod', 'lino.modlib.publisher', 'lino_xl.lib.topics']),
 rest_framework (needed_by=lino.modlib.restful),
 lino.modlib.restful (needs_plugins=['rest_framework']),
 lino_xl.lib.addresses (needed_by=lino_xl.lib.google, needs_plugins=['lino.modlib.checkdata']),
 lino_xl.lib.phones (needed_by=lino_xl.lib.google),
 lino_xl.lib.google (needs_plugins=['lino.modlib.users', 'lino_xl.lib.addresses', 'lino_xl.lib.phones']),
 lino.modlib.search,
 django.contrib.sessions)