Commit graph

336 commits

Author SHA1 Message Date
mergify[bot]
a851af05ba
Merge pull request #15963 from resilient-tech/remove-unnecessary-code
perf: reduce loop in `doc.update`
2022-02-16 04:17:41 +00:00
mergify[bot]
4dae96d721
Merge pull request #15957 from resilient-tech/always-set-doctype-for-child
fix: always set `doctype` from `options` for child Document
2022-02-16 03:34:41 +00:00
mergify[bot]
1df33cbfcf
Merge pull request #15975 from resilient-tech/fix-limit-without-filter
fix: limit without filter
2022-02-15 13:40:56 +00:00
Sagar Vora
1a20f376f3 perf: reduce loop in doc.update 2022-02-15 15:29:04 +05:30
mergify[bot]
4b27569d13
Merge pull request #15962 from resilient-tech/ignore-doctype-in-setter
fix: Ignore `doctype` in setter
2022-02-15 09:31:20 +00:00
Pruthvi Patel
7ce9f1eaa1 fix: limit without filter 2022-02-15 13:06:55 +05:30
Sagar Vora
8a264d05ca fix: remove ignore_in_getter; cleaner implementation 2022-02-15 13:02:52 +05:30
Gavin D'souza
57c7f63d44 fix: Add ignore_virtual option to get_valid_dict
Allows to create new Documents with virtual docfields
2022-02-14 20:26:56 +05:30
Ankush Menat
c38d1f8a25
Merge pull request #15906 from ankush/ignore_duplicates_db
feat(db/pg): ability to ignore pk collision
2022-02-14 18:58:07 +05:30
Pruthvi Patel
882c68671d fix: ignore doctype in setter 2022-02-14 12:22:40 +05:30
Pruthvi Patel
b1197a89be fix: always set doctype from options for child 2022-02-12 18:21:55 +05:30
Ankush Menat
d3f768fef9 feat(db/pg): ability to ignore pk colission 2022-02-09 16:25:36 +05:30
Gavin D'souza
0482f1362a Merge branch 'develop' of github.com:frappe/frappe into dynamic-docfields 2022-02-08 16:50:58 +05:30
phot0n
266e1f95ed chore: adding back idx column
This is needed for ordering in display of links as it keeps
track of the clicks on a particular link item
2022-02-07 16:40:01 +05:30
phot0n
b31f3c24f6 refactor: remove parent, parenttype, parentfield, idx columns from non-child table doctypes
* feat: add parent, parenttype, idx, parentfield columns to doctypes when transitioning from normal -> child table

* fix: remove parent, parenttype, parentfield, idx from DocType DocType
2022-02-07 15:12:37 +05:30
Raffael Meyer
89922bae90
feat: utility methods for docstatus (#15515)
* feat: utility methods for docstatus

* refactor: use utility method for doctsatus

* refactor: enum for docstatus

* refactor: docstatus as property

* fix: set docstatus

* feat: docstatus extends int class

* test: docstatus of BaseDocument

* refactor: occurrences of docstatus

* fix: typo

* refactor: move docstatus to a separate file

* test: docstatus

* fix: sider
2022-02-04 07:41:25 +00:00
Gavin D'souza
4d00579667 fix: Skip data field validations for virtual field 2022-02-01 18:38:31 +05:30
Gavin D'souza
5c4905dd37 feat(minor): Allow expressions in options for DocFields
This means you don't have to write a custom controller or change backend
code to use Virtual DocFields! Write it in the options column for the
virtual field in Customize Form

Added doc and safe globals (from safe_exec) into the evaluation
namespace
2022-02-01 18:08:27 +05:30
Gavin D'souza
9e3e3f804a feat: Virtual DocField
Add virtual docfield through which you can make callable properties for
the controller
2022-01-27 22:38:48 +05:30
Gavin D'souza
6c83d82d14 Merge branch 'develop' of github.com:frappe/frappe into dynamic-docfields 2022-01-27 18:50:57 +05:30
barredterra
b1383df15a refactor: use is None instead of == None 2022-01-17 10:37:51 +01:00
Rushabh Mehta
853287f49d fix: load user_info on-demand 2022-01-13 16:39:24 +05:30
Gavin D'souza
6502c4b340 fix: Don't add property value if NoneType or Falsy 2022-01-12 16:02:43 +05:30
Gavin D'souza
d9daefc54d fix: Calculate dynamic properties for as_dict
If you have a @property in the controller class, this data used to not
be accessible anywhere other than directly through the object via
`frappe.get_doc`. This fix changes that.
2022-01-12 12:46:08 +05:30
mergify[bot]
6f8f792c01
Merge pull request #15574 from resilient-tech/fix-limit-in-get-method
fix: limit in `Document.get`
2022-01-11 08:18:12 +00:00
Pruthvi Patel
d1852242a0 fix: limit in Document.get 2022-01-10 15:52:25 +05:30
Gavin D'souza
981564e544 Merge branch 'develop' into frappe-postgres-changes 2022-01-07 11:37:28 +05:30
Conor
40ba1ac9ba fix: Postgres Compatibility
* Handle inconsistencies in type handling in DatabaseQuery & Database
  APIs
* Update incompatible queries with frappe.qb notation
* Fixed use cases discovered by failing ERPNext CI tests

fix: db independent syntax for user_type

fix: handle postgres datetime values

feat: add ability to auto commit on db inserts

feat: add ability to escape underscore in postgres

fix: handle missing data in test runner bootstrapping

fix: db independent syntax for queries

fix: refactor to use qb

fix: update cache for language

fix: use pluck in email_queue

Co-authored-by: gavin <gavin18d@gmail.com>

fix: don't auto insert on tests for make_property_setter

fix: remove auto_commit in custom_field insertion

fix: remove auto_commit functionality

fix: review comments

fix: revert link validation

fix: style suggestion for readability

Co-authored-by: gavin <gavin18d@gmail.com>

fix: revert .lower() in link validation

fix: add rollback for setup_wizard

Revert "fix: add rollback for setup_wizard"

This reverts commit 83b3b0913db17718ccd5edae01858cff15603829.

Revert "feat: add ability to escape underscore in postgres"

This reverts commit 8ed9c2aa3306438e94bb813f60e65b416d0b947b.

fix: more concise representation of order fields

Co-authored-by: gavin <gavin18d@gmail.com>
2022-01-07 10:44:57 +05:30
Lev
0345954b65
perf: BaseDocument improvements (#15398)
* perf: BaseDocument improvements

* Add `default_fields_set`, use default placeholder to lookup fields in update(), refactor get_valid_columns()

* Revert all changes except "update()"

Co-authored-by: Gavin D'souza <gavin18d@gmail.com>
2021-12-31 22:31:40 +05:30
Faris Ansari
4db2c1aaa3 feat: Document States
Customize the color of document states. Works with Status field.
2021-12-09 18:30:59 +05:30
mergify[bot]
20e3ed9ff9
revert: "feat(minor): Implement __getitem__ in Base Document" (backport #14945) (#14946)
* Revert "feat(minor): Implement __getitem__ in Base Document (#14855)"

This reverts commit 583a7ef23923d362c85beeabe57703c2d5b12a65.

(cherry picked from commit d165fb3d477e65f7a395118f69278f2cb5c7f4e5)

* fix: keyerror in auto email report

(cherry picked from commit aac20f5d159875a5f3c9b4a6d74beec390e617dd)

Co-authored-by: Ankush Menat <ankush@frappe.io>
2021-11-11 12:13:52 +05:30
mergify[bot]
53a2539c5a
feat(minor): Implement __getitem__ in Base Document (#14855) (#14866)
* feat(minor): Implement __getitem__ in Base Document

This addition allows for syntactic sugars like writing doc["name"] to
access document name. This addition is solely for the sake of code
simplicity. Since dictionaries in Python follow this standard, we can
write code that works for both Vanilla Dicts, Frappe Dicts & all
Document objects

* fix: Use getattr over get in getitem

For the sake of consistency and some level of sanity in the universe.

Co-authored-by: Ankush Menat <ankush@frappe.io>

* fix: Raise KeyError instead of AttributeError

why: shit breaks down. Specifically stuff in Jinja templates, attributes
that are conditional. Either this is acceptable or subscripting objects
cannot and probably should not be possible along with our pre-condiitons

* chore: Use hasattr instead of get default

Couldn't decide between a style commit or a chore

Co-authored-by: Ankush Menat <ankush@frappe.io>
(cherry picked from commit 583a7ef23923d362c85beeabe57703c2d5b12a65)

Co-authored-by: gavin <gavin18d@gmail.com>
2021-11-02 13:24:36 +05:30
Sagar Vora
6b91ade73c
fix: convert_dates_to_str converts everything except date objects (#14340)
Co-authored-by: Suraj Shetty <13928957+surajshetty3416@users.noreply.github.com>
2021-10-07 15:58:23 +05:30
Steffen
4415351597 fix: hand no_default_fields parameter further down to recursive calls of as_dict 2021-09-09 10:28:27 +02:00
Gavin D'souza
3446026555 chore: Update header: license.txt => LICENSE
The license.txt file has been replaced with LICENSE for quite a while
now. INAL but it didn't seem accurate to say "hey, checkout license.txt
although there's no such file". Apart from this, there were
inconsistencies in the headers altogether...this change brings
consistency.
2021-09-03 12:02:59 +05:30
Gavin D'souza
7e2e8c87ff Merge branch 'develop' into get-single-value-oof 2021-08-30 13:49:35 +05:30
Gavin D'souza
b8c51b13e2 fix: Revert to using cast_fieldtype in BaseDocument.cast
* reference: revert Breaking Change -
  https://github.com/frappe/frappe/pull/13989#discussion_r695624003
* Show deprecation warning unless `show_warning` is unset
2021-08-30 13:45:30 +05:30
Suraj Shetty
30a09490b5
Merge branch 'develop' into get-frmt 2021-08-27 11:12:27 +05:30
Gavin D'souza
ed6533f737 fix: Use cast in favour of cast_fieldtype
Use newly introduced casting util for Python-Frappe types mapping
2021-08-20 12:37:15 +05:30
Ankush
257723cb0a
feat: PythonExpression and Python option with syntax validation for Code field types (#13707)
* feat: `PythonExpression` and `Python` options for `Code` fields

* fix: check python expressions in assignment rule

* fix: replace server script syntax validation

* fix: validate condition in workflow transition

Add PythonExpression in Options.
2021-08-06 04:10:09 +00:00
Suraj Shetty
81cada8b6e
Merge branch 'develop' into get-frmt 2021-08-04 14:20:21 +05:30
Himanshu Mishra
1bf90d18ee perf-fix: Remove meta from pickling overhead 2021-06-15 17:17:08 +05:30
Gavin D'souza
c489846547 Merge branch 'develop' into unnecessary_comprehensions 2021-06-11 19:30:23 +05:30
Kenneth Sequeira
6bdcae1201 feat: add number format parameter in doc.get_formatted 2021-05-28 21:19:21 +05:30
Gavin D'souza
e407b78506 chore: Drop dead and deprecated code
* Remove six for PY2 compatability since our dependencies are not, PY2
  is legacy.
* Removed usages of utils from future/past libraries since they are
  deprecated. This includes 'from __future__ ...' and 'from past...'
  statements.
* Removed compatibility imports for PY2, switched from six imports to
  standard library imports.
* Removed utils code blocks that handle operations depending on PY2/3
  versions.
* Removed 'from __future__ ...' lines from templates/code generators
* Used PY3 syntaxes in place of PY2 compatible blocks. eg: metaclass
2021-05-26 15:31:29 +05:30
Prssanna Desai
4b0e627c94
Merge pull request #13203 from prssanna/custom-print-format-fix
fix: check if df exists in get_formatted
2021-05-13 12:14:37 +05:30
Ankush Menat
4754ab71d1
perf(minor): remove unnecessary comprehensions
- remove several unnecessary comprehensions from functions that accept a generator.
- Using `[x for x in iter]` causes a list to be built first then passed to the outer function.
- `any` and `all` can take generator instead. This makes memory usage O(1) and actually makes these functions short-circuiting. E.g. if the first condition fails then `all` will immediately return false instead of evaluating all the entries.
- `sum`, `min`, `max` => memory usage become O(1)
- `list`, `set`, `.join()` => roughly halves memory usage, as list is not required to be built.
- lastly, it's two fewer characters to read/think about.
2021-05-12 20:38:18 +05:30
prssanna
103fa1e31a fix: check if df exists in get_formatted 2021-05-12 16:40:56 +05:30
Gavin D'souza
87ed7796de fix: Use older logic to set module_name and custom vars 2021-05-06 16:56:50 +05:30
Gavin D'souza
877f9d08df fix: Use fallback values if doctype values unset 2021-05-06 16:56:50 +05:30