Admin#
This section is for the system administrator (group_system). It
contains operational tasks that are not part of the daily office
routine.
New user#
Settings → Users & Companies → Users → Create.
Required:
- Name + Login (usually email)
- Password (temporary, user changes)
Permissions by role:
| Role | Required groups (manual) |
|---|---|
| Installer | fieldservice.group_fsm_user, maintenance.group_equipment_manager, hr.group_hr_user |
| Foreman | + fieldservice.group_fsm_manager |
| Office (invoicing) | + account.group_account_invoice |
| Office (full) | + account.group_account_manager, hr.group_hr_manager |
| Admin | + base.group_system |
**v1.200.17+:** `fieldservice.group_fsm_user` now automatically brings in `stock.group_stock_user` + `hr_timesheet.group_hr_timesheet_user` via implied_ids — you no longer have to tick them manually. Existing installations (pre-1.200.17) that already have those groups set keep working; new users just need fewer clicks now.
Installer groups in detail — different PWA features need different groups:
| Group | Used for |
|---|---|
fieldservice.group_fsm_user | View and edit own field service tasks (implicitly brings group_fsm_user_own). v1.200.17+ also brings stock.group_stock_user and hr_timesheet.group_hr_timesheet_user. |
stock.group_stock_user (implicit) | Read product lines, and the PWA’s “Done” button’s stock consumption (creating stock.picking + stock.move for the FOnnn → customer-location transfer). |
hr_timesheet.group_hr_timesheet_user (implicit) | Log own hours (account.analytic.line). Without it, the Hours view fails to save. |
maintenance.group_equipment_manager | Register equipment via the PWA’s “Register equipment” action. Without it, the attempt fails with “You are not allowed to create ‘Maintenance Equipment’”. |
hr.group_hr_user | Log expenses (hr.expense) and read own employee record. The “Officer” label is misleading — this is the basic level, not an HR manager. |
ELT-specific ACL rows for the installer (these are not groups —
they are ir.model.access.csv rows in elt_fsm):
| Model | Permissions (R/W/C/U) | Why |
|---|---|---|
fsm.billing.line | 1/1/1/0 | The PWA’s “Done” action builds billing lines via _rebuild_billing_lines(). Without write/create, action_complete_work fails with “You are not allowed to create ‘Billing Line’”. Unlink stays manager-only. |
fsm.easy.timesheet.line | 1/1/1/0 | Time entries created from the timer toggles. |
fsm.order.product.line | 1/1/1/0 | Adding product lines + editing quantities mid-job. |
**Don't grant `base.group_system` to anyone but system admins.** It allows all backend configuration — including the unintentional. Use other groups for fine-grained scoping.
fsm.person row required#
In addition to the user, an installer needs an fsm.person
row in Field Service → Workers. Without it, Field Service doesn’t
recognise them as an installer.
fsm.person.elt_user_id must link to the user (200.7+). This is
ELT-specific — OCA’s default created partner duplicates which
caused bugs.
Pricing and mileage#
Settings → Field Service → Pricing. Sets the FSM service default prices from one place:
- Work hour, mileage, half per diem, per diem, accommodation, meal allowance, parking.
- The Default pricelist and Customer pricelists buttons open the pricelists. A customer-specific price can be set e.g. for one customer’s mileage; if no line exists, the default pricelist is used.
- A customer-specific pricelist is chosen on the customer card (Contacts → pricelist dropdown).
**OpenRouteService API key.** The same Pricing page has a field for the ORS routing key (`elt_fsm.openrouteservice_api_key`). With a key set, automatic mileage tracking computes the **actual road distance** from the installer's GPS points. Without a key a straight-line (haversine) estimate is used, which underestimates bends. The key is free (openrouteservice.org), 2000 requests/day.
PWA app name (white‑label)#
Settings → Field Service → PWA app name. The name entered here is shown in the installers’ PWA (as the app title and in the top bar). Useful especially when the service is resold — each customer can see their own brand name. Leave it empty to use the company’s default name. The change reaches an installer the next time the PWA fetches settings from the server (on re‑open).
API key management#
Settings → Users & Companies → API Keys.
- List of all valid API keys
- You can revoke a single key if you suspect a leak
- A user can create a new key from their profile
Per-user — don’t create keys on a shared ELT user.
Updates and versioning#
The developer publishes updates automatically — users don’t need to do anything. A new version takes effect when you log out and back in, or refresh the page.
If something looks broken after an update:
- Logout + login — new versions require re-authentication.
- Clear browser cache (Ctrl+Shift+R / Cmd+Shift+R).
- If that doesn’t fix it — notify the developer.
Cron jobs#
Settings → Technical → Scheduled Actions.
ELT’s important crons:
| Cron | Schedule | What it does |
|---|---|---|
| LVISnet Auto-fetch dispatcher | 1 min | Checks fetch_requested flags |
| LVISnet Auto-fetch (monthly) | 1st day 21:25 | Iterates all wholesalers |
| Netvisor purchase import | 06:00 daily | Fetches yesterday’s purchase invoices |
| Netvisor payment sync | 07:00 daily | Updates payment statuses |
| Netvisor payroll sync | 1st day 08:00 (off) | Sends payslips |
Run manually button triggers immediately — useful if the cron
missed or for testing.
Backups#
Responsibility of the server administrator. General practice:
- Database dump daily → moved off-site
- Filestore (images, attachments) synced off-site as well
- System upgrades are always done alongside a dump
Detailed steps live in the administrator’s internal runbook.
Technical state#
Settings → Technical:
- Database Structure → Models — all tables, if you need to inspect the schema
- Logging — debug-level log review
- Sequences — numbering sequences (FO task numbers, invoice numbers)