Giter VIP home page Giter VIP logo

erpnext_quota's People

Contributors

ahmadpak avatar mymi14s avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

erpnext_quota's Issues

Users can't set or change passwords in v13

Hi @ahmadpak

Trust you're doing great. There seems to be an issue for version 13... Users can't reset password or even create new passwords after being added to the system

Kindly help fix this

Thanks for this wonderful and very useful app

Kind regards,

Error 500: internal server error on v14

hello Ahmad
First of all many thanks for the great work, I installed the app on erpnext v14 its worked fine in limiting users and dates, but when I try to upload an image or file to any module I face Error 500 internal server error.

Add expiry date control

Can you add expiry date.
And also a scheduled check if expired or warnings everyday when reaches 10/5 days to expire.

Bug with ERPNext Translation

Hello @ahmadpak

Thanks for your custom application it works fine but when I use the translation methods it throws errors , I am using version 14 of ERPNext : https://frappeframework.com/docs/user/en/translations

Here's is the Error

Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 109, in <module>
    main()
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name="bench")
  File "/home/azureuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/azureuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/azureuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/azureuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/azureuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/azureuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/azureuser/frappe-bench/env/lib/python3.10/site-packages/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 29, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/commands/translate.py", line 64, in get_untranslated
    frappe.translate.get_untranslated(lang, untranslated_file, get_all=all, app=app)
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/translate.py", line 1049, in get_untranslated
    messages.extend(get_messages_for_app(app_name))
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/translate.py", line 429, in get_messages_for_app
    messages.extend(get_server_messages(app))
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/translate.py", line 659, in get_server_messages
    messages.extend(get_messages_from_file(os.path.join(basepath, f)))
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/translate.py", line 725, in get_messages_from_file
    messages += extract_messages_from_python_code(file_contents)
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/translate.py", line 765, in extract_messages_from_python_code
    raise e  # Re-raise the exception after printing the code
  File "/home/azureuser/frappe-bench/apps/frappe/frappe/translate.py", line 746, in extract_messages_from_python_code
    for message in extract_python(
  File "/home/azureuser/frappe-bench/env/lib/python3.10/site-packages/babel/messages/extract.py", line 487, in extract_python
    value = eval(code, {'__builtins__': {}}, {})
  File "<string>", line 2, in <module>
NameError: name 'doc' is not defined

Feature Request: Sales Invoices Limit

Thank you for the good work.

Can you please add a new limit for the number of Sales Invoices to be created.

E.g. Limiting the total number of Sales Invoices to be 100, after that it will ask the user to check with the Administrator to increase the limit.

Or we can make this new field dynamic so that the Administrator can select any Doc Type and set the limit for it.

Not working on version-11

Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/client/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 97, in
main()
File "/home/client/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
click.Group(commands=commands)(prog_name='bench')
File "/home/client/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 764, in call
return self.main(*args, **kwargs)
File "/home/client/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/client/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/client/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/client/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/client/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/client/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/client/frappe-bench/apps/frappe/frappe/commands/init.py", line 25, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File "/home/client/frappe-bench/apps/frappe/frappe/commands/site.py", line 168, in install_app
_install_app(app, verbose=context.verbose)
File "/home/client/frappe-bench/apps/frappe/frappe/installer.py", line 145, in install_app
sync_for(name, force=True, sync_everything=True, verbose=verbose, reset_permissions=True)
File "/home/client/frappe-bench/apps/frappe/frappe/model/sync.py", line 56, in sync_for
reset_permissions=reset_permissions, for_sync=True)
File "/home/client/frappe-bench/apps/frappe/frappe/modules/import_file.py", line 65, in import_file_by_path
ignore_version=ignore_version, reset_permissions=reset_permissions)
File "/home/client/frappe-bench/apps/frappe/frappe/modules/import_file.py", line 100, in import_doc
doc = frappe.get_doc(docdict)
File "/home/client/frappe-bench/apps/frappe/frappe/init.py", line 721, in get_doc
doc = frappe.model.document.get_doc(*args, **kwargs)
File "/home/client/frappe-bench/apps/frappe/frappe/model/document.py", line 69, in get_doc
return controller(*args, **kwargs)
File "/home/client/frappe-bench/apps/frappe/frappe/model/document.py", line 113, in init
super(Document, self).init(kwargs)
File "/home/client/frappe-bench/apps/frappe/frappe/model/base_document.py", line 54, in init
self.update(d)
File "/home/client/frappe-bench/apps/frappe/frappe/model/base_document.py", line 77, in update
self.set(key, value)
File "/home/client/frappe-bench/apps/frappe/frappe/model/base_document.py", line 124, in set
self.extend(key, value)
File "/home/client/frappe-bench/apps/frappe/frappe/model/base_document.py", line 161, in extend
self.append(key, v)
File "/home/client/frappe-bench/apps/frappe/frappe/model/base_document.py", line 155, in append
self.name, str(type(value))[1:-1], value)
ValueError: Document for field "field_order" attached to child table of "Usage Info" must be a dict or BaseDocument, not type 'unicode' (users)

System User not able to change password

I have noticed that a system user cannot change his password in Erpnext version 14 which has the quota app installed. An error message "Insufficient Permission for Has Role" occurs whenever he tries to save the changed password. I think it is applicable to any modification a user wants to do on his or her user page.
When I uninstall the quota app, the issue stops.
Thanks

User count

Currently your user count filters in install.py is still counting Administrator.

filters = {
    'enabled': 1,
    'name': ['!=','Guest', 'Administrator']
  }

It only takes the '!=', 'Guest' and ignore the '!=', 'Administrator' hence the user count also includes Administrator.

It should be

  filters = [
    {'enabled': 1}, 
    {'name': ['!=','Administrator']}, 
    {'name': ['!=','Guest']}
  ]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.