Install POS Awesome

Greetings!

I have been checking it out and I believe Dokos is a great product! In our ERPNext, we rely heavily on POS Awesome since the built in POS is lacking in critical features.

I tried to install POS Awesome for testing using instructions found here but I got the following error:

How can I get around this?

Hi @dmbabu,

With Dokos you need to pass the app name explicitly when installing it.
The install command is therefore:

bench get-app posawesome https://github.com/yrestom/POS-Awesome.git

I haven’t try to use this app with Dokos, but it should be compatible.
Please don’t hesitate to share your experience !

Thanks!. I went ahead and did

bench get-app posawesome https://github.com/yrestom/POS-Awesome.git

Now I am getting this:

dokos@demo:~/dokos-bench$ bench get-app posawesome https://github.com/yrestom/POS-Awesome.git
INFO:bench.app:getting app posawesome
INFO:bench.utils:git clone -q https://github.com/yrestom/POS-Awesome.git  --depth 1 --origin upstream posawesome
installing posawesome
INFO:bench.app:installing posawesome
INFO:bench.utils:./env/bin/pip install -q -U -e ./apps/posawesome
  ERROR: Command errored out with exit status 1:
   command: /home/dokos/dokos-bench/env/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-v75g3t_6/frappe_34b4127912d943059388b12833f9ebb6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-v75g3t_6/frappe_34b4127912d943059388b12833f9ebb6/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-6rx1eaci
       cwd: /tmp/pip-install-v75g3t_6/frappe_34b4127912d943059388b12833f9ebb6/
  Complete output (12 lines):
  Traceback (most recent call last):
    File "/tmp/pip-install-v75g3t_6/frappe_34b4127912d943059388b12833f9ebb6/setup.py", line 8, in <module>
      import testfm
  ModuleNotFoundError: No module named 'testfm'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-v75g3t_6/frappe_34b4127912d943059388b12833f9ebb6/setup.py", line 10, in <module>
      raise LookupError("You must have test.fm >= 1.0.4 installed before (https://github.com/grafos-ml/frappe)")
  LookupError: You must have test.fm >= 1.0.4 installed before (https://github.com/grafos-ml/frappe)
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/4c/d3/73da0e17271031bacd2c585588026701ae5934329264db575ad989cc9ce3/frappe-2.1.4.tar.gz#sha256=6ca5313aceb1212f8044efc15ccf03461b2c85644e33716616a02a1fe2bb5c1f (from https://pypi.org/simple/frappe/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  ERROR: Command errored out with exit status 1:
   command: /home/dokos/dokos-bench/env/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-v75g3t_6/frappe_ea856d42d5e245ed907531c21962634a/setup.py'"'"'; __file__='"'"'/tmp/pip-install-v75g3t_6/frappe_ea856d42d5e245ed907531c21962634a/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-jyf6jst2
       cwd: /tmp/pip-install-v75g3t_6/frappe_ea856d42d5e245ed907531c21962634a/
  Complete output (12 lines):
  Traceback (most recent call last):
    File "/tmp/pip-install-v75g3t_6/frappe_ea856d42d5e245ed907531c21962634a/setup.py", line 8, in <module>
      import testfm
  ModuleNotFoundError: No module named 'testfm'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-v75g3t_6/frappe_ea856d42d5e245ed907531c21962634a/setup.py", line 10, in <module>
      raise LookupError("You must have test.fm >= 1.0.4 installed before (https://github.com/grafos-ml/frappe)")
  LookupError: You must have test.fm >= 1.0.4 installed before (https://github.com/grafos-ml/frappe)

I have gone ahead to try and install testfm via

pip install https://github.com/grafos-ml/test.fm/archive/v1.0.4.tar.gz
pip install frappe

Still failed with same error.

Please help.

Thanks in advance.

Hi @dmbabu,

The problem exists because POSAwesome references frappe as a requirement: https://github.com/yrestom/POS-Awesome/blob/master/requirements.txt
frappe on pip is a completely different package (https://github.com/grafos-ml/frappe) and this is the reason why you are having this issue.

Here is the reference to the same error with the installation of ERPNext solved by the Frappe Team: https://github.com/frappe/erpnext/commit/64a38f52cf72a56568876bcc376e69aec3680007#diff-4d7c51b1efe9043e44439a949dfd92e5827321b34082903477fd04876edb7552

I guess you need to create a ticket on POSAwesome’s github page.

Have a nice day!

did install but now when click pos this error come


Traceback (most recent call last):
File “/home/dokos/dokos-bench/apps/frappe/frappe/handler.py”, line 53, in execute_cmd
method = get_attr(cmd)
File “/home/dokos/dokos-bench/apps/frappe/frappe/handler.py”, line 186, in get_attr
method = frappe.get_attr(cmd)
File “/home/dokos/dokos-bench/apps/frappe/frappe/init.py”, line 1167, in get_attr
return getattr(get_module(modulename), methodname)
File “/home/dokos/dokos-bench/apps/frappe/frappe/init.py”, line 931, in get_module
return importlib.import_module(modulename)
File “/home/dokos/dokos-bench/env/lib/python3.6/importlib/init.py”, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 994, in _gcd_import
File “”, line 971, in _find_and_load
File “”, line 955, in _find_and_load_unlocked
File “”, line 665, in _load_unlocked
File “”, line 678, in exec_module
File “”, line 219, in _call_with_frames_removed
File “/home/dokos/dokos-bench/apps/posawesome/posawesome/posawesome/api/posapp.py”, line 16, in
from erpnext.accounts.doctype.payment_request.payment_request import (
ImportError: cannot import name ‘get_dummy_message’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/dokos/dokos-bench/apps/frappe/frappe/app.py”, line 68, in application
response = frappe.api.handle()
File “/home/dokos/dokos-bench/apps/frappe/frappe/api.py”, line 54, in handle
return frappe.handler.handle()
File “/home/dokos/dokos-bench/apps/frappe/frappe/handler.py”, line 28, in handle
data = execute_cmd(cmd)
File “/home/dokos/dokos-bench/apps/frappe/frappe/handler.py”, line 55, in execute_cmd
frappe.throw(_(‘Invalid Method’))
File “/home/dokos/dokos-bench/apps/frappe/frappe/init.py”, line 425, in throw
msgprint(msg, raise_exception=exc, title=title, indicator=‘red’, is_minimizable=is_minimizable, wide=wide, as_list=as_list)
File “/home/dokos/dokos-bench/apps/frappe/frappe/init.py”, line 404, in msgprint
_raise_exception()
File “/home/dokos/dokos-bench/apps/frappe/frappe/init.py”, line 358, in _raise_exception
raise raise_exception(msg)
frappe.exceptions.ValidationError: Invalid Method

Hi @shuhain85,

Unfortunately, it seems that POSAwesome uses a method not available in Dokos. This method is specific to ERPNext as we are using a very different Payment Request document in Dokos.

I suggest you open an issue on the POSAwesome project repository.

Have a good week-end !