Sometimes it's useful to ssh into a posbox to quickly troubleshoot an
issue. Talking customers through port forwarding is very difficult
however. We use ngrok to solve this issue.
This implements an interface that allows a user to enter an ngrok
authentication token. After this, ngrok can be started and we should be
able to remotely connect.
Note that ngrok does NOT run by default on the posbox. It can only be
started manually by the user.
Every time the posbox boots it would say something like:
This raspberry pi is not configured, please run raspi-config
Which is a leftover from the original raspbian image. Raspi-config is
removed on the posbox because we don't need it.
This allows people to connect the posbox to networks using a wireless
network adapter.
When plugging in a USB Wi-Fi adapter and no network cable, the posbox
will boot and host its own Access Point called "Posbox". Users can
connect their device to this network and can then connect to the posbox
the usual way.
An interface for has been provided that also allows users to instruct
the posbox to connect to a different Wi-Fi network. This is useful when
the client is not running Odoo locally.
It is also possible to make this configuration persistent. With a
persistent Wi-Fi network configuration, the posbox will always try to
connect to the specified network after a reboot.
Attempts have been made to make the Wi-Fi connection as robust as
possible. Upon connection loss, the posbox will automatically attempt to
reconnect.
Some usability improvements. A field "Purchase Order" is added on the
invoice line, so it is much easier to make the link between the invoice
line and the PO.
On the other hand, the "Purchase Order" field which was used for
encoding help is kept empty since it is not meaningful.
If the default_sale_tax_id or default_purchase_tax_id is removed from
the settings, the ir.values must be updated accordingly (i.e. set to
False). Otherwise, the value will come back when the page is reloaded.
When using the tab key on non text node range, it could fail in some
given case.
Also when removing the last element of the table row, a correction was done in
d33086c03f but if there was no element before the table (eg. the editor
is empty) an error could occur.
Tests for null range were not done in #8845, so in given case (where the
focus is not in the editor) we could get an issue.
The code for remembering the selection when clicking the editor
was made useful in d33086c03f, but there was an edge case when
the editor itself was in a modal: then the selection would be lost.
This commit change the code as following:
1) restore the selected range if:
- the current selected range is not in the editable of the active editor
- there is a corresponding saved selected range or we are in an embeded
editor (and not in air mode as when editing the website)
2) save the selected range if:
- we don't restore the selection,
- the current selected range is in the active editor editable area
The current default values leads to standard proposals of 6 digits
account numbers and in many cases wrong default tax settings. The fix
prevents most users to apply manually the right settings of digits and
default taxes.
Closes#8837
The values inside the dictionary passed to urlencode from urllib must be in
'utf-8' and url_encode from werkzeug can treat unicode inside the dictionary.
opw:651471
These menus were visible to all employees, but the reports use
hr.salary.rule.category that is only available to HR Officers/Managers.
As these reports are not meant to be available for employees anyway, we
hide them.
(this bug has been spotted by the nightly crawler that clicks on every
menu as demo user)
The variable `date` is compared to the field `name` in the selection
query. `name` is filled in with datetime data. In particular, in the
module currency_rate_live, datetime.now() is used in the name. It is
necessary to make an appropriate comparison to make sure we select the
updated rate right away.
This controller is mainly used by im_livechat which don't send html message. It is more secure to force it in plain text. If anonoymous user write html tags, it will be escaped and sanitize.
Posting message is done in 'html' since mention add html tag in body. Clickable url is done server to allow link in mail and chat message. Plaintext are transform into html, and html message are simply parsed to transform url into clickable link.
When adding a line to a confirmed sale order,
the procurements are automatically created, with
this product.
Therefore, the product of the line should no longer be changed,
as otherwise, the product on the procurement would no longer
be the same product than on the sale order line.
To be able to change the product of a line on a
confirmed sale order, you must therefore first
delete all procurements.
When using the editable list on the sale order form,
it was not possible to add a new line on a confirmed sale order,
while it should
(when `Allow to edit sales order` is chosen in the Sales settings).
The reason was that the fields `tax_id` and `product_id` were
set as readonly when the SO state was not draft.
When using the popup/dialog view, it worked by luck, because
the line `state`, which is a stored related field to the sale order state,
was not correctly computed, and was seen as `draft`, while it should
actually be `sale`, for a confirmed sale order.
We change the readonly condition of these fields,
which is now based on the fact wether or not
the line is already invoiced or not, which makes
more sense.
opw-651573
- Add recipients as followers, and automatically refresh the follower's list
(before this rev., one needed to reload the record to see the followes' list
updated)
- Don't display needactions on chatter's messages
- Simplify buttons of suggested partner's dialog, as it should only offer two
possibilities: Save or Cancel
- Replace unnecessary t-raw's by t-esc's
We search for USB devices that identify as a printer through their
DeviceClass or one of their InterfaceClasses. The issue is a lot of
printers use vendor-specific Device/InterfaceClasses.
Apparently the Epson TM-T88IV is one of those devices. So in order to
work around this, we now first look for a USB device that identifies as
a printer. If those do not exist, we pick the first Epson device, if
those do not exist we pick the first Star device.
Perhaps we should instead start using some kind of probe-based approach
to identify ESC/POS compatible devices.