[Video] Unveiling a new look for ERPNext Version 13!

work for me :grinning:

1 Like

You need to change branch of ‘frappe’ as well.

Hey i’m not seeing this UI! How did you get it?

sudo bench switch-to-branch rebrand-ui frappe erpnext --upgrade
bench update --patch
bench setup requirements
bench migrate
bench build
bench restart

5 Likes

V13 looks super awesome!

Is there any plans to improve the android erpnext app in the near future?

3 Likes

Yes, I got it now. Looks awesome. I didn’t get the icons on modules though.

A patch in the new UI branch is breaking the upgrade. See error below:

Executing frappe.patches.v13_0.rename_notification_fields in site1.local (_77da561cd97dcbce)
Traceback (most recent call last):
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/utils.py”, line 204, in load_doctype_module
doctype_python_modules[key] = frappe.get_module(module_name)
File “/home/flexy/frappe-bench/apps/frappe/frappe/init.py”, line 858, in get_module
return importlib.import_module(modulename)
File “/usr/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/flexy/frappe-bench/apps/frappe/frappe/email/doctype/notification/notification.py”, line 16, in
from frappe.integrations.doctype.twilio_settings.twilio_settings import send_whatsapp_message
File “/home/flexy/frappe-bench/apps/frappe/frappe/integrations/doctype/twilio_settings/twilio_settings.py”, line 8, in
from twilio.rest import Client
ModuleNotFoundError: No module named ‘twilio’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/lib/python3.6/runpy.py”, line 193, in _run_module_as_main
main”, mod_spec)
File “/usr/lib/python3.6/runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “/home/flexy/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 99, in
main()
File “/home/flexy/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/home/flexy/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 764, in call
return self.main(*args, **kwargs)
File “/home/flexy/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 717, in main
rv = self.invoke(ctx)
File “/home/flexy/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/flexy/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/flexy/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/flexy/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 555, in invoke
return callback(*args, **kwargs)
File “/home/flexy/frappe-bench/env/lib/python3.6/site-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/flexy/frappe-bench/apps/frappe/frappe/commands/init.py”, line 26, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/home/flexy/frappe-bench/apps/frappe/frappe/commands/site.py”, line 292, in migrate
skip_search_index=skip_search_index
File “/home/flexy/frappe-bench/apps/frappe/frappe/migrate.py”, line 67, in migrate
frappe.modules.patch_handler.run_all(skip_failing)
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 41, in run_all
run_patch(patch)
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 30, in run_patch
if not run_single(patchmodule = patch):
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 71, in run_single
return execute_patch(patchmodule, method, methodargs)
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 91, in execute_patch
frappe.get_attr(patchmodule.split()[0] + “.execute”)()
File “/home/flexy/frappe-bench/apps/frappe/frappe/patches/v13_0/rename_notification_fields.py”, line 13, in execute
frappe.reload_doc(“Email”, “doctype”, “Notification”)
File “/home/flexy/frappe-bench/apps/frappe/frappe/init.py”, line 841, in reload_doc
return frappe.modules.reload_doc(module, dt, dn, force=force, reset_permissions=reset_permissions)
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/utils.py”, line 174, in reload_doc
return import_files(module, dt, dn, force=force, reset_permissions=reset_permissions)
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 31, in import_files
reset_permissions=reset_permissions)
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 36, in import_file
ret = import_file_by_path(path, force, pre_process=pre_process, reset_permissions=reset_permissions)
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 70, in import_file_by_path
ignore_version=ignore_version, reset_permissions=reset_permissions)
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 143, in import_doc
doc.insert()
File “/home/flexy/frappe-bench/apps/frappe/frappe/model/document.py”, line 268, in insert
self.run_post_save_methods()
File “/home/flexy/frappe-bench/apps/frappe/frappe/model/document.py”, line 964, in run_post_save_methods
self.run_method(“on_update”)
File “/home/flexy/frappe-bench/apps/frappe/frappe/model/document.py”, line 831, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/flexy/frappe-bench/apps/frappe/frappe/model/document.py”, line 1116, in composer
return composed(self, method, *args, **kwargs)
File “/home/flexy/frappe-bench/apps/frappe/frappe/model/document.py”, line 1099, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/flexy/frappe-bench/apps/frappe/frappe/model/document.py”, line 825, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/flexy/frappe-bench/apps/frappe/frappe/core/doctype/doctype/doctype.py”, line 291, in on_update
self.run_module_method(“on_doctype_update”)
File “/home/flexy/frappe-bench/apps/frappe/frappe/core/doctype/doctype/doctype.py”, line 357, in run_module_method
module = load_doctype_module(self.name, self.module)
File “/home/flexy/frappe-bench/apps/frappe/frappe/modules/utils.py”, line 206, in load_doctype_module
raise ImportError(‘Module import failed for {0} ({1})’.format(doctype, module_name + ’ Error: ’ + str(e)))
ImportError: Module import failed for Notification (frappe.email.doctype.notification.notification Error: No module named ‘twilio’)

Hi @flexy2ky, the error is obvious, the module twilio was not found. The solution just install the requirements.txt by running the pip install -r requirements.txt. Please make sure you are in the right environment. Hope this help.

1 Like

Pray do tell… where can i find this requirements.txt? As far as i know, requirements.txt installs dependencies and packages, not ERPNext modules. As shown below, this is Twilio settings in the new UI.


Your response isn’t correct as Twilio isn’t a requirement. I was able to get around the error by going to patches.txt and commenting out patch with the error and my upgrade was successful.

Twillio was added recently in frappe requirements for SMS Channels. If we checkout rebrand-ui, we need to hit following commands:

bench setup requirements
bench update --patch
bench build
bench --site <sitename> migrate
2 Likes

Yes i hit the commands and hit that error multiple times. Only way to progress was to comment out the rename_notification_fields patch. I know it’s a bug because i killed multiple instances and tried different methods beyond commenting out the patch and nothing worked. I posted it here so devs can look at the patch to see if there’s anything that could be wrong with the patch.

I just upgraded half an hour back on fresh instance, not faced that notification issue. Also, looked at repo, no commits made between your error posted & my try. Everything worked as expected. I’m not sure, might any of your customization conflicted there!

Nope no customization. I ran it on a clean install without data or customization.

It seams that the twilio issue is gone, using:

bench setup requirements
bench update --patch
bench build
bench --site migrate

but now, it have some issues with css, when bench build:

Error: File to import not found or unreadable: royal.
:heavy_check_mark: Built css/frappe-web-b4.css
Error: File to import not found or unreadable: royal.
:heavy_check_mark: Built css/desk.min.css
:heavy_check_mark: Built js/checkout.min.js
:heavy_check_mark: Built js/dialog.min.js
:heavy_check_mark: Built js/social.min.js

Yes I am having the same issue. and I have no idea what that royal is.
If you swtich branch to version-13-beta, you can get it work again :wink:

I think the new UI only works on v13

Not sure what you mean with the new ui, but version-13-beta also has all the dashboard and number cards integrated. So I believe you have it there as well.

is fixed now

Unfortunately, not…

image

image

Do:

Bench update

Then

bench build