Giter VIP home page Giter VIP logo

frappe's Introduction

frappe's People

Contributors

rmehta avatar anandpdoshi avatar nabinhait avatar netchampfaris avatar surajshetty3416 avatar pdvyas avatar saurabh6790 avatar mbauskar avatar adityahase avatar achillesrasquinha avatar pratu16x7 avatar hrwx avatar mergify[bot] avatar scmmishra avatar rohitwaghchaure avatar codingcoffee avatar deepeshgarg007 avatar prssanna avatar sahil28297 avatar zlash65 avatar mangesh-khairnar avatar kanchanchauhan avatar akhileshdarjee avatar frappe-bot avatar sagarvora avatar ruchamahabal avatar revant avatar thunderbottom avatar gavindsouza avatar robertschouten avatar

Watchers

Brian Pond avatar

frappe's Issues

Replace wkhtmltopdf

โ€ข https://blog.rebased.pl/2018/07/12/wkhtmltopdf-considered-harmful.html
โ€ข https://wkhtmltopdf.org/index.html

Remove MySQL CLI Dependency

During installation of ERPNext, certain code depends on the MySQL client being installed. For example:

../frappe-bench/apps/frappe/frappe/database/db_manager.py
Static Method restore_database

There appear to only be a few additional cases where this happens.

  • Does it make sense for a server to have client software installed?
  • Can this not be handled by the python-sql library?
  • Maybe it does make sense for the MariaDB Client to be installed on the server, so that SysAdmins can perform backup, restore, and other maintenance...

...but maybe ERPNext using that client doesn't make sense, when it has its own library.

This is possibly related to ERPNext needing an ORM in the future.

IMAP and SMTP Broken

I've had several problems with Email Domains and Account setup.

  • Inconsistent results. On the Email Domains doc type, changing port from 587 to 465 fails repeatedly. But then I restart Bench...and then my change is accepted. Until I try to make a second edit. Then it fails again.
  • I'm unable to send an email, regardless of my settings. I have tried different ports. With/without TLS. Nothing makes a difference.
  • I have found a situation where ERPNext fails to accept changes to an Email Account. But does not rollback the uncommitted SQL Transaction. You have to restart Bench to release the lock on the table.
  1. Create tests in Python, that use SQL table data to send emails. Take the Web App out of the picture.
  2. Allow saving on Email Domains and Email Accounts, regardless of results of email validation.
  3. Add new Boolean field to DocType, "Email is Validated".
  4. When fields are edited, automatically change to "No".
  5. Add new button that performs validation, shows meaningful results, and then flips the boolean to "Yes" if everything is successful.
  6. Add button "Send Test Email' to the DocType.

Remove spaces in SQL tables/columns

Spaces in table and column names is a very bad practice.

  1. Modify the DocType create/edit code. Make sure it's impossible (going forward) to create DocType tables/columns with spaces inside. Either remove spaces (shorten the name). Or substitute underscore. Instead of choose one or the other, maybe give the DocType developer the option. (enter your preferred table/column name)
  2. SQL script to rename all the existing tables.
  3. Find/replace all the code that references the names with spaces, and make better names.

Time Zone Drop downs

The current time-zone drop down is very confusing, has duplicates, and generally sucks.

Drupal had a nice, clean one.

  • Continent
    • cities alphabetically
  • Continent
    • cities alphabetically

If it doesn't exist already, let's get a SQL table with time zone codes, continent, country, UTC offset, etc. Then pull from that.

Bench Command - Sync DB Only

Command to synchronize the MariaDB database schema (tables, columns), with the values that Frappe believes "should" exist, based on the JSON definitions.

A good solution would warn about:

  1. Tables that will be dropped.
  2. Columns that will be dropped.
  3. Columns that will be truncated.
  4. Columns where the data type has changed (i.e. float to string).

This could be handled similar to a git merge or commit. A text file is created, containing a list of all the proposed changes. You have the option to comment-out or delete lines you don't want. This also gives you an opportunity to stop. Backup your database/tables. And then continue.

Improve "new version available"

When this "New Updates are Available" screen pops up, be sure to indicate the current versions you are using.

Also, let's make sure we can disable this message using a Configuration File (TOML)

Screenshot from 2019-06-18 08-38-15

Unique ID column in every SQL Table

Requirement: Every database row should have a unique reference number.

  • Does it need to be globally unique? No.
  • Some programming languages such as Javascript cannot support numbers with > 53-bits
  • Does it need to be a UUID (128bit number)? Not necessarily.

Hugely useful when you want to have a Reference column, pointing at another column in a table.

IDX Not Unique

On Child tables, SQL column 'idx' is not unique per parent.
Because of the way the JS is coded, it cannot be. When you 'Move', it updates all the 'idx' values in the client. And then tries to update them in SQL. For a fraction of a second, things will be duplicated because of the re-sorting.

The solution is to NULL the 'idx' values for update.

Production "Mode"

  • See if there's a way to enable/disable through Configuration, instead of obscure editing of site configs and Procfile.
  • See if there's a way to have 1 Procfile for "production" mode and "development" mode.
  • Refer to Development mode as "Developer" Mode.

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.