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

Nice UI! I love it! I’m trying in Spanish language and look awesome, only a litte detail:

The cards doesn’t have support to text overflow, here Human Resources card has a bad look.

The other things look great!!!

2 Likes

So curious, what does “in collaboration with Timeless” mean?

hi, Try to pull the latest version of the rebrand-ui branch. the frappe team had already fix it.

https://timeless.co

4 Likes

Almos there. When bench update --patch:

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/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 99, in <module>
    main()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/frappe/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/frappe/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/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/frappe/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/frappe/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 26, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py", line 289, in migrate
    skip_search_index=skip_search_index
  File "/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py", line 89, in migrate
    frappe.get_attr(fn)()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/website/doctype/website_theme/website_theme.py", line 183, in after_migrate
    website_theme_doc.validate()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/website/doctype/website_theme/website_theme.py", line 15, in validate
    self.generate_bootstrap_theme()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/website/doctype/website_theme/website_theme.py", line 82, in generate_bootstrap_theme
    frappe.throw('<div style="font-family: monospace;">{stderr}</div>'.format(stderr=stderr))
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 413, in throw
    msgprint(msg, raise_exception=exc, title=title, indicator='red', is_minimizable=is_minimizable, wide=wide)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 392, in msgprint
    _raise_exception()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 340, in _raise_exception
    raise raise_exception(msg)
frappe.exceptions.ValidationError: <div style="font-family: monospace;">Error: File to import not found or unreadable: frappe/public/scss/variables.<br>        on line 1 of ../erpnext/erpnext/public/scss/website.scss<br>        from line 10 of stdin<br>>> @import "frappe/public/scss/variables";<br><br>   ^<br><br></div>`

Same in bench migrate. 

Then, when bench build: 

> Building frappe assets...

✔ Built js/checkout.min.js
✔ Built js/dialog.min.js
✔ Built js/social.min.js
✔ Built js/web_form.min.js
✔ Built js/list.min.js
✔ Built js/chat.js
✔ Built js/bootstrap-4-web.min.js
✔ Built js/frappe-recorder.min.js
✔ Built js/barcode_scanner.min.js
✔ Built js/frappe-web.min.js
✔ Built css/frappe-rtl.css
✔ Built css/report.min.css
✔ Built css/list.min.css
✔ Built css/email.css
✔ Built css/frappe-chat-web.css
✔ Built css/web_form.css
✔ Built js/data_import_tools.min.js
✔ Built js/report.min.js
✔ Built js/desk.min.js
✔ Built css/printview.css
✔ Built js/control.min.js
PLUGIN_WARNING : undefined
Warning {
  type: 'warning',
  text:
   'start value has mixed support, consider using flex-start instead',
  line: 11142,
  column: 5,
  node:
   Declaration {
     raws: { before: '', between: ':', semicolon: false },
     type: 'decl',
     parent:
      Rule {
        raws: [Object],
        type: 'rule',
        nodes: [Array],
        parent: [Root],
        source: [Object],
        selector: '.image-view .image-view-container .image-title',
        lastEach: 45,
        indexes: {},
        _autoprefixerDisabled: false,
        _autoprefixerGridStatus: false },
     source: { start: [Object], input: [Input], end: [Object] },
     prop: 'justify-content',
     value: 'start',
     _autoprefixerDisabled: false,
     _autoprefixerGridStatus: false },
  plugin: 'postcss',
  id:
   '/home/frappe/frappe-bench/apps/frappe/frappe/public/scss/desk.scss',
  hook: 'transform',
  code: 'PLUGIN_WARNING',
  toString: [Function] }
✔ Built css/desk.min.css
✔ Built css/frappe-web-b4.css
✔ Built js/form.min.js
✨  Done in 73.065s

Building erpnext assets...

Error: File to import not found or unreadable: frappe/public/scss/variables.
✔ Built css/erpnext-web.css
✔ Built js/erpnext-web.min.js
✔ Built js/item-dashboard.min.js
✔ Built js/erpnext.min.js
✔ Built css/marketplace.css
✔ Built css/erpnext.css
✔ Built js/marketplace.min.js
✨  Done in 11.144s
Done in 86.17s.

Even though, it is working…

without css in the main page, por without all the css confs:

image

What is it with this plugin warning? Anything we should be aware of? It doesn’t stop the building of min.js but wondering if I have to do anything there.

    ✔ Built js/report.min.js
✔ Built js/desk.min.js
✔ Built css/printview.css
PLUGIN_WARNING : undefined
Warning {
  type: 'warning',
  text: 'start value has mixed support, consider using flex-start instead',
  line: 11142,
  column: 5,
  node: Declaration {
    raws: { before: '', between: ':', semicolon: false },
    type: 'decl',
    parent: Rule {
      raws: [Object],
      type: 'rule',
      nodes: [Array],
      parent: [Root],
      source: [Object],
      selector: '.image-view .image-view-container .image-title',
      lastEach: 45,
      indexes: {},
      _autoprefixerDisabled: false,
      _autoprefixerGridStatus: false
    },
    source: { start: [Object], input: [Input], end: [Object] },
    prop: 'justify-content',
    value: 'start',
    _autoprefixerDisabled: false,
    _autoprefixerGridStatus: false
  },
  plugin: 'postcss',
  id: '/home/flipo/frappe-bench/apps/frappe/frappe/public/scss/desk.scss',
  hook: 'transform',
  code: 'PLUGIN_WARNING',
  toString: [Function]
}
✔ Built css/frappe-web-b4.css
✔ Built css/desk.min.css
✔ Built js/control.min.js
✔ Built js/form.min.js
✨  Done in 162.688s

When is the release date of version 13… its a long waited release…hahhaa

I guess they are working for a better release now so it will take some time… unlike the previous versions lets wait and see. probably it will be by december or by next year.

Tried the new look, but the font wasn’t matching. Am I missing anything?

EDIT: css - font-family is inherit. How to find out the font-family in chrome developer pane? - Stack Overflow

Standard font is Times New Roman so it brings it up. Bootstrap CSS overwrites the font-family

@asharamseervi Thanks. its resolved.

ImportError: Module import failed for Notification (frappe.email.doctype.notification.notification Error: No module named ‘twilio’)
1 Like
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/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 99, in <module>
    main()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/frappe/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/frappe/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/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/frappe/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/frappe/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 26, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py", line 296, in migrate
    skip_search_index=skip_search_index
  File "/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py", line 67, in migrate
    frappe.modules.patch_handler.run_all(skip_failing)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 41, in run_all
    run_patch(patch)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 30, in run_patch
    if not run_single(patchmodule = patch):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 71, in run_single
    return execute_patch(patchmodule, method, methodargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 91, in execute_patch
    frappe.get_attr(patchmodule.split()[0] + ".execute")()
  File "/home/frappe/frappe-bench/apps/erpnext/erpnext/patches/v13_0/set_app_name.py", line 8, in execute
    settings.save()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 285, in save
    return self._save(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 323, in _save
    self._validate()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 493, in _validate
    self._validate_mandatory()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 801, in _validate_mandatory
    name=self.name))
frappe.exceptions.MandatoryError: [System Settings, System Settings]: language, time_zone, time_format

I have hosted Erpnext on Frappe cloud. Where do I type this?

Refreshing :smiley:
:100:% Awesome!

I did the following on my test site and it worked

commands written line by line in bench console

import frappe
from frappe import _
frappe.reload_doctype("System Settings")
settings = frappe.get_doc("System Settings")
settings.time_format= "HH:mm:ss"
settings.save()
frappe.db.commit()
1 Like

I don’t think I saw this command in docs. Maybe I overlooked it and need to look again.

I know there is doc.reload(), but not frappe.reload_doctype(). Are they the same?
What does frappe.reload_doctype() do?
And why we need it?
And you reload the doctype before getting it. Why?

Thanks

@rahy,

See this file in frappe github for reload_doctype (line 343) . It “Reloads schema for a DocType”

the command is used like 40 times (mainly for patches) within frappe and over 100 times within Erpnext
https://github.com/frappe/erpnext/search?q=frappe.reload_doctype

Hope this helps.

What’s the point with this link please?

That was just the reference to the UX/UI agency, that has been already contracted fro Frappe books, see: Frappe Redesign 2020

Can someone please help me with the update in production? I am getting this warning and therefore I am unable to update it:

This is not the recommended mode of installation for production. Instead, install the package from PyPI with: pip install frappe-bench.

It would be great if you can let me know the steps to update. Thanks in advance.