Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More

Project management

Side note: Code snippets (lines starting with >>>) in this document get tested as part of our development workflow. The following initialization snippet tells you which demo project is being used in this document.

>>> import lino
>>> lino.startup('lino_book.projects.noi1r.settings')
>>> from lino.api.doctest import *
>>> ses = rt.login("robin")
>>> ses.show(groups.Groups, max_width=40)
+--------------------+---------+------------------------------------------+
| Team               | Private | Memberships                              |
+====================+=========+==========================================+
| `Developers <…>`__ | No      | `Marc <…>`__, `Rolf Rompen <…>`__,       |
|                    |         | **New** **?**                            |
+--------------------+---------+------------------------------------------+
| `Managers <…>`__   | Yes     | `Jean <…>`__, `Mathieu <…>`__, `Robin    |
|                    |         | Rood <…>`__, **New** **?**               |
+--------------------+---------+------------------------------------------+
| `Sales team <…>`__ | No      | `Luc <…>`__, `Romain Raffault <…>`__,    |
|                    |         | **New** **?**                            |
+--------------------+---------+------------------------------------------+
>>> ses.show(groups.Groups, column_names="id name")
==== ============= ================== ==================
 ID   Designation   Designation (de)   Designation (fr)
---- ------------- ------------------ ------------------
 1    Developers    Developers         Developers
 2    Managers      Managers           Managers
 3    Sales team    Sales team         Sales team
==== ============= ================== ==================
>>> ses.show(groups.Memberships)
==== ================= ============ ========
 ID   User              Team         Remark
---- ----------------- ------------ --------
 1    Jean              Managers
 2    Luc               Sales team
 3    Marc              Developers
 4    Mathieu           Managers
 5    Romain Raffault   Sales team
 6    Rolf Rompen       Developers
 7    Robin Rood        Managers
==== ================= ============ ========
>>> ses.show(groups.MembershipsByUser, master_instance=ses.get_user())
`Managers <…>`__, **New** **?**
>>> sales = groups.Group.objects.get(pk=3)
>>> ses.show(groups.MembershipsByGroup, master_instance=sales)
`Luc <…>`__, `Romain Raffault <…>`__, **New** **?**
>>> rt.login("robin").show(subscriptions.Subscriptions)
==== ============ =========== ===================== ============== ==========================
 ID   Start date   Reference   Partner               Subject line   Workflow
---- ------------ ----------- --------------------- -------------- --------------------------
 1    07/01/2014   welket      Rumma & Ko OÜ                        **Registered** → [Draft]
 2    27/01/2014   welsch      Bäckerei Ausdemwald                  **Registered** → [Draft]
 3    16/02/2014   aab         Bäckerei Mießen                      **Registered** → [Draft]
 4    08/03/2014   bcc         Bäckerei Schmitz                     **Registered** → [Draft]
 5    28/03/2014   dde         Garage Mergelsberg                   **Registered** → [Draft]
==== ============ =========== ===================== ============== ==========================

Class reference

class TimeInvestment

Model mixin for things which represent a time investment. This currently just defines a group of three fields:

closed

Whether this investment is closed, i.e. certain things should not change anymore.

private

Whether this investment is private, i.e. should not be publicly visible anywhere.

The default value is True. Tickets on public projects cannot be private, but tickets on private projects may be manually set to public.

planned_time

The time (in hours) we plan to work on this project or ticket.