Draft:Specification Module Public Portal
Specification for a module of a Public Portal
We need a new module to offer a public portal
Some requirements
- Must be a Dolibarr module called "WebPortal"
- The portal must be pages hosted into /public/webportal/
Login
A table already exists to store login/pass for external portals. It is already used to store :
- login from external website (for example stripe customer key of a thirdparty). The column site contains "stripe".
- login from website for users of a website. The column site contains "dolibarr_website" and we store the id of website into fk_website
So we will also use it to store login for the external portal access too:
- the column "site" will contains "dolibarr_portal" and fk_soc will contains the id of the thirdparty
On the record of a thirdparty, the module Public portal must enable the new tab will be visible to show all accounts/login (=record of table llx_societe_account) linked to this thirdparty.
Note: This tab already exists but is enabled only when WEBSITE_USE_WEBSITE_ACCOUNTS is on. We found this into core/lib/company.lib.php
if (isModEnabled('website') && (!empty($conf->global->WEBSITE_USE_WEBSITE_ACCOUNTS)) && ($user->hasRight('societe', 'lire'))) {
We must enable the tab also when the module WebPortal is on. This tab shows all existing access. A button + in top of list allow to add one access.
Setup page of the module
The setup page must allow to enable features in the portal like:
- Enable access to the membership record (Hidden / Visible or Editable)
- Enable access to the partnership record
- Enable access to the proposals (list with date, end of validity date, ref, amount, status + download link)
- Enable access to the orders (list with date, delivery date, ref, amount, status + download link)
- Enable access to the invoices (list with date, due date, ref, amount, remain to pay, status + download link)
Other need will be added in the future...
The portal page
The portal web site must contains:
- A top banner similar to other public pages
- Must be able to surcharge the CSS by adding CSS in a textarea
- A home page
- A tab/menu with membership data in read or edit mode (if option was set)
- A tab/menu with partnership data in read or edit mode (if option was set)
- A tab/menu with list of proposals
- A tab/menu with list of orders
- A tab/menu with list of invoices
- No dependency on external javascript libraries (except the jquery already present into Dolibarr)