Commit graph

354 commits

Author SHA1 Message Date
Ankush Menat
b409a7eeba fix: extend autoname validation to child items 2022-04-14 15:16:59 +05:30
Shridhar Patil
39f8267a15
feat: added support for data type json (#16187)
> Please provide enough information so that others can review your pull request:

Added json support for postgres and mariadb



> Explain the **details** for making this change. What existing problem does the pull request solve?
https://github.com/frappe/frappe/projects/4#card-50160428


> Screenshots/GIFs
![json](https://user-images.githubusercontent.com/11792643/156367383-8f8492c2-3817-449d-a2dd-c983eeadbb48.gif)



---

**Previous attempts:** 

https://github.com/frappe/frappe/pull/8128
https://github.com/frappe/frappe/pull/7096


Docs: https://frappeframework.com/docs/v13/user/en/basics/doctypes/fieldtypes#json
2022-04-14 04:21:41 +00:00
Nabin Hait
b4476e0257 feat: Ignore permlevel for specific fields 2022-04-12 12:24:23 +05:30
Suraj Shetty
c0c5b2ebdd
style: format all python files using black (#16453)
Co-authored-by: Frappe Bot <developers@frappe.io>
2022-04-12 10:59:25 +05:30
Sagar Vora
73fc2f1d59 fix: require key in doc.get 2022-04-04 11:18:46 +05:30
Sagar Vora
e9b1cdcdca refactor(BaseDocument)!: dont return __dict__ if key is falsy 2022-04-04 11:11:13 +05:30
Sagar Vora
aedd2fb2b6
Revert "perf: 80% faster doc.get for fields with None as value" (#16490) 2022-04-01 20:39:27 +05:30
gavin
4756efca91
Merge pull request #16477 from resilient-tech/perf-doc-get
perf: 80% faster `doc.get` for fields with `None` as value
2022-04-01 16:26:27 +05:30
Ankush Menat
046f5d31af
fix: don't update autoname field when using Document.save (#16436) 2022-04-01 14:00:27 +05:30
Sagar Vora
811c213082 perf: 80% faster doc.get for fields with None as value 2022-04-01 04:35:19 +05:30
Sagar Vora
4bb5ea609c
fix: get currency name from DB only if options are set and value is truthy (#16382)
* fix: call `frappe.db.exists` only if `options` are set and value is truthy

* fix: sider issue

Co-authored-by: Ankush Menat <ankushmenat@gmail.com>

* fix: use `get_value` instead of `exists`

Co-authored-by: Ankush Menat <ankushmenat@gmail.com>

* test: ensure currency formatting works without currency set in df options or param

Co-authored-by: Ankush Menat <ankushmenat@gmail.com>
2022-03-23 19:28:01 +05:30
mergify[bot]
f47331cd1d
Merge pull request #16200 from alyf-de/refactor-db-exists
refactor: `frappe.db.exists`
2022-03-21 05:47:27 +00:00
barredterra
c26cf25478 fix: avoid invalid call to frappe.db.exists 2022-03-17 02:46:00 +01:00
phot0n
bebc8058b6 feat: integer primary keys 2022-03-11 23:46:00 +05:30
Suraj Shetty
7ee56ac5eb
Merge branch 'develop' into update-if-missing 2022-02-21 20:12:53 +05:30
Sagar Vora
24a750c048 chore: remove redundant code from update_if_missing 2022-02-16 10:53:03 +05:30
Suraj Shetty
d9ef033927
Merge branch 'develop' into perf-tree 2022-02-16 10:39:52 +05:30
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
Sagar Vora
18ba5fcd49 perf: reduce one query in get_controller 2022-02-15 14:10:55 +05:30
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