Frappe Version 14.0.0-beta.1 Release Notes
What's Changed
- feat(UI): consistently themed scrollbars by @walstanb in #12882
- test: no need to blur text editor by @sagarvora in #12881
- fix: Cannot read property
current
of undefined by @sagarvora in #12879 - refactor: frappe.views.CommunicationComposer by @sagarvora in #12878
- feat: Default Email Template by @barredterra in #12264
- fix: Kanban board sync issue by @leela in #12874
- fix: Remove
cmd
only if exist by @mustafaelagamey in #12886 - fix: Make strings translatable by @ernestoruiz89 in #12877
- fix: cannot read property
doc
of undefined by @sagarvora in #12891 - fix(minor): Add a delete trigger in grid, and use it to refresh labels in Website Settings by @rmehta in #12890
- chore: Upgrade frappe-charts to rc13 by @surajshetty3416 in #12896
- test: multiple cypress fixes by @sagarvora in #12893
- fix: Typo in get_all_language_with_name by @surajshetty3416 in #12902
- feat: manage Python 3 compatiblity with dependencies by @Alchez in #12784
- fix: OAuth token expiry by @leela in #12904
- fix: Grid Form buttons Insert Above, Insert Below not hidden when can… by @shariquerik in #12906
- fix: do not empty viewers parent on form refresh by @prssanna in #12905
- test: fix PermissionError in test_token_cache by @barredterra in #12887
- fix: id_token format by @revant in #12912
- fix: whitelist login method to fetch session id remotely by @abhishekbalam in #12913
- fix: Pass aggregate_on_doctype to properly create the query by @surajshetty3416 in #12917
- fix(treeview): Accept filters as kwargs to avoid TypeError by @surajshetty3416 in #12920
- fix: aggregate column in auto email report by @prssanna in #12919
- fix: Get defaults from user_defaults based on fieldname by @nabinhait in #12924
- feat: Add autocompletion items in Server Script by @netchampfaris in #12888
- fix: Resolve value in promise while validating link field by @nabinhait in #12925
- fix(backups): ensure
delete_temp_backups
always respects config by @sagarvora in #12807 - fix: Handle error while session start by @surajshetty3416 in #12933
- fix: Ignore non utf-8 files for translation scan by @netchampfaris in #12935
- ci: Fix coveralls by @hasnain2808 in #12926
- fix: Use grid docfield list while creating grid_row docfield copy by @surajshetty3416 in #12940
- fix: Form Dashboard reference link by @surajshetty3416 in #12945
- fix(query): Use single quotes for string constant by @surajshetty3416 in #12948
- fix: build-message-files command by @surajshetty3416 in #12950
- fix: Invalid HTML generated by the base template by @anandology in #12953
- fix(cli): Trigger Scheduler Event by @gavindsouza in #12955
- perf: low priority for backup processes by @sagarvora in #12958
- ci: Set COVERALLS_SERVICE_NAME as github by @hasnain2808 in #12961
- fix: Build priority on computers with low resources by @casesolved-co-uk in #12564
- fix(control): Check if same value is set to avoid unnecessary change triggers by @surajshetty3416 in #12959
- refactor: Jinja hooks by @netchampfaris in #12880
- fix: Use node.string to extract style and script by @netchampfaris in #12967
- ci(semgrep): add more rules, r/python.correctness by @ankush in #12876
- fix: Conditionally hide grid Add Row & Add Multiple buttons by @shariquerik in #12960
- feat(hooks): auth hooks by @revant in #12895
- docs: add docker repo link in README by @revant in #12972
- fix: Default values were not triggering change event by @rohitwaghchaure in #12975
- fix: Currency labels in grids by @nextchamp-saqib in #12974
- chore: frappe.whitelist for doc methods by @walstanb in #12983
- refactor: Remove events to redraw charts by @scmmishra in #12973
- fix: multipart/form-data breaks with OAuth tokens by @fahimalizain in #12968
- feat: allow button of different sizes in df by @hasnain2808 in #12847
- ci: fix coveralls by @hasnain2808 in #12971
- chore: Bump develop branch version to v14 by @surajshetty3416 in #13003
- fix(kanban): Freeze screen till the background request is complete by @surajshetty3416 in #13001
- refactor: improve oauthlib implementation by @revant in #12997
- fix: RTL stylesheet route to load RTL style on demand. by @surajshetty3416 in #13006
- chore(deps): bump redis from 2.8.0 to 3.1.1 by @dependabot in #13004
- fix: focus jumps to first field by @hasnain2808 in #13012
- refactor: fix py3 datatypes and remove references to six in oauth by @Alchez in #13015
- fix: disabled checkbox should be disabled by @sagarvora in #13014
- feat(DX): sourceURL for injected javascript by @ankush in #12999
- fix: Decode uri before importing file via weblink by @hasnain2808 in #13024
- ci: Use different service name for push and pull request events by @hasnain2808 in #13030
- test: omit commands directory since it is tested seperately by @hasnain2808 in #13035
- fix: Moving Site folder across different FileSystems failed (backport #13033) by @mergify in #13037
- fix: Grid row color picker field not working by @shariquerik in #13034
- fix(UI): consistent checkboxes on all browsers by @sagarvora in #13019
- fix: Respond to /api requests as JSON by default by @gavindsouza in #13028
- fix: error for bench drop-site. Added missing import. by @stephenBDT in #13062
- fix: Changed shorcut widgets color picker to dropdown by @shariquerik in #13055
- refactor: Move mention list generation logic to server-side by @surajshetty3416 in #13052
- fix: Added conditional rendering for content field in split section w… by @codescientist703 in #13071
- fix: Make strings translatable by @ernestoruiz89 in #13046
- feat: switch theme with left/right keys by @sagarvora in #13070
- fix(UI): Add margin to download backup card by @ernestoruiz89 in #13050
- fix: naming section display by @anupamvs in #13048
- fix: replace parseFloat by Number (backport #13011) by @mergify in #13081
- fix: make report column labels translatable by @barredterra in #12943
- feat: Deletion Steps in Data Deletion Tool by @gavindsouza in #12996
- fix: Typo in RecorderDetail.vue by @surajshetty3416 in #13085
- fix: Add __ function in vue global for translation in recorder by @surajshetty3416 in #13088
- fix: Report column context by @barredterra in #12944
- feat(cli): Format Option for list-apps by @gavindsouza in #12966
- fix: Add breadcrumbs for list view by @shariquerik in #13080
- feat: Add password fieldtype option for Web Form by @pateljannat in #13056
- feat: URL option for Data fieldtype by @NagariaHussain in #12898
- fix: disable reloading files in
__pycache__
directory by @sagarvora in #13099 - chore: remove py2 specific code from boilerplate by @ankush in #13103
- fix: Patch Update Notification channel by @shariquerik in #13101
- fix(setup): do not show messsage when exception is handled by @sagarvora in #13098
- fix: Error while exporting reports with duration field by @deepeshgarg007 in #13095
- fix(UI): dont disable dialog scroll on focusing a Link/Autocomplete field by @sagarvora in #12965
- refactor: Email Module - 1 by @leela in #13057
- perf(PDDR): Replace filter_by like with full text filter by @gavindsouza in #13120
- refactor(CLI): Show config by @gavindsouza in #13102
- fix: RTL styling by @FatenElhariry in #13107
- fix: missing comma and uncommented code in hooks.py template by @ankush in #13134
- fix: Misc fixes by @gavindsouza in #13129
- fix: hook format for user_data_fields by @ankush in #13140
- chore: replace assertEquals with alias assertEqual by @ankush in #13147
- refactor: Send mail functionality by @leela in #13122
- refactor: replace inspect.getargspec with getfullargspec by @leela in #13131
- feat(DX): Add simple repr for DocTypes by @ankush in #13121
- fix(UI): Broken styles by @surajshetty3416 in #13153
- fix: Typo by @surajshetty3416 in #13155
- fix: Allow to duplicate standard notification by @shariquerik in #13096
- test: add unittest for creating new app using boilerplate by @ankush in #13144
- fix: auto repeat schedule not rendered in the dashboard by @nextchamp-saqib in #12993
- fix: Don't evaluate dynamic properties to check if conflicts exist by @gavindsouza in #12242
- fix: Revert naming for custom naming series by @shariquerik in #13142
- fix: Do not skip data in save while using shortcut by @surajshetty3416 in #13177
- fix: Use docfields from options if no docfields are returned from meta by @sgtpepper9907 in #13106
- fix: translations by @barredterra in #12942
- fix: Clear web page cache after web template is updated by @netchampfaris in #13190
- fix: connected app auto_refresh credentials and mandatory fields by @casesolved-co-uk in #13192
- fix: parse Today default value for date docfield by @hrwX in #13157
- fix: Strip any comments before sanitizing column_name by @surajshetty3416 in #12969
- feat: Add run-parallel-tests command by @surajshetty3416 in #13165
- ci: fix semgrep false positives by @ankush in #13161
- fix: check if df exists in get_formatted by @prssanna in #13203
- fix: svg files upload by @rovertzxd in #13199
- fix: Misc fixes by @gavindsouza in #13145
- fix: check if grid_rows exists by @prssanna in #13212
- fix: DeprecationWarning: invalid escape sequence ( by @josephalbaph in #13232
- fix: DeprecationWarning: invalid escape sequence < by @josephalbaph in #13231
- fix: Invalid escape sequence by @josephalbaph in #13227
- fix: Invalid escape sequence by @josephalbaph in #13228
- fix: Invalid escape sequence by @josephalbaph in #13229
- fix: Allow only_for for Cards by @casesolved-co-uk in #13220
- fix: check if parentfield also exists by @prssanna in #13211
- feat: Add global style for radio buttons by @marination in #13184
- fix: minimize modal scroll issue by @pateljannat in #13141
- feat: New Build System based on esbuild by @netchampfaris in #12883
- fix: session clearing query on postgres by @josejibin in #13257
- fix: Hide all warnings in frappe commands by @gavindsouza in #13243
- feat: Add document actions in mobile view by @gavindsouza in #13247
- fix: Set home workspace as first available for user (backport #13263) by @mergify in #13268
- fix: Increase timeout for window close (backport #13265) by @mergify in #13269
- chore(deps): [security] bump hosted-git-info from 2.8.8 to 2.8.9 by @dependabot-preview in #13162
- fix: grid copy from excel with header, field label in user language by @szufisher in #13266
- chore(deps): [security] bump lodash from 4.17.20 to 4.17.21 by @dependabot-preview in #13148
- fix: Workspace not found error by @nikhilponnuru in #13150
- fix: Ignore "lft" and "rgt" when importing/exporting fixtures by @barredterra in #13180
- fix: Make bundled asset URL absolute always by @netchampfaris in #13272
- fix: Python 3 issue on re by @josephalbaph in #13230
- fix: set correct default redis async broker in node_utils by @revant in #13282
- fix: issue with sending emails by @anandology in #13293
- fix: Use email_account_doc to get track_email_status value by @surajshetty3416 in #13284
- fix: Add a command to properly extend class methods by @surajshetty3416 in #13300
- fix: Use extend_cscript in make to properly extend functions of class by @surajshetty3416 in #13306
- fix: default number format for germany by @barredterra in #13044
- fix: user profile not loading by @chromonav in #13303
- fix(DocType): Skip field name conflict validation for No value fields by @gavindsouza in #13309
- feat(minor): add number format parameter in fmt_money by @kennethsequeira in #13255
- fix(Workspace): broken links for reports created with Report Builder by @sagarvora in #13295
- feat(minor): option to disable button in slack message by @ankush in #13206
- chore(deps): bump browserslist from 4.4.2 to 4.16.6 by @dependabot in #13325
- fix: set title attribute for grid header columns by @sagarvora in #13296
- fix: Don't strip 'app' from doctype route names by @gavindsouza in #13286
- feat: Add grid breakpoint css_variables by @surajshetty3416 in #13333
- fix: double checkboxes in editable grid by @sagarvora in #13338
- fix: Evaluate boolean values better via /api/resource/ by @gavindsouza in #13065
- fix: corrected the function get_url by @AkshayKumarTripathi in #13330
- fix: allow updating naming series by @hasnain2808 in #13204
- fix: Store assets.json directly in assets folder by @netchampfaris in #13349
- fix: tooltip displays correct title by @krishnakanthati in #13346
- fix: Ensure website theme is applied correctly by @prssanna in #13280
- fix: check if salutation already exists in email body (backport #13196) by @mergify in #13358
- fix: refresh form section while refreshing the field (backport #13355) by @mergify in #13364
- fix: display currency in auto email report (backport #13339) by @mergify in #13340
- refactor: Incoming mail refactoring by @leela in #13307
- fix: Return promise while reloading doc by @nextchamp-saqib in #13219
- fix(minor): expose limited methods of json module by @rmehta in #13253
- fix(jinja): Remove frappe.utils.jinja.get_jenv() from jinja globals by @adityahase in #13373
- chore(deps): bump ws from 7.4.2 to 7.4.6 by @dependabot in #13369
- fix: Translate Strings by @szufisher in #13277
- fix: Select appropriate email template response by @getsali in #13051
- fix: Grid navigation with keyboard on multiple pages by @sagarvora in #13301
- fix: Grid row deletion fix by @shariquerik in #13176
- fix(server scripts): Restrict access to python's internal attributes by @adityahase in #13383
- fix: Add min-width for dropdown list by @surajshetty3416 in #13397
- fix: Allow only use of Fernet generated key for using custom encryption_key by @abhishekbalam in #13399
- refactor: build Email queue from send mail request by @leela in #13393
- fix: removed duplicate fields from Customize Form by @walstanb in #13410
- chore: Dead dependencies and code cleanup by @gavindsouza in #13344
- fix: Remove ellipsis to avoid clipping of useful content by @surajshetty3416 in #13409
- ci(semgrep): false +ve translation on templates by @ankush in #13329
- ci: Patch tests by @gavindsouza in #13417
- fix: inbound mail handling for pop3 protocol by @leela in #13421
- fix: ensure
Page.add_dropdown_item
returns link even if it already exists by @sagarvora in #13420 - fix: Remove frappe from boilerplate requirements.txt by @gavindsouza in #13434
- chore: Use get_absolute_url to doc.get_url by @gavindsouza in #13432
- fix:check is_submittable attr exists in meta before accessing by @brian-pond in #13441
- refactor: sendmail of communication doctype by @leela in #13442
- feat: add context to strings in confirm and prompt dialogs by @barredterra in #13341
- chore(Snyk): Security upgrade cssnano from 4.1.10 to 5.0.0 by @snyk-bot in #13342
- chore(deps): bump normalize-url from 4.5.0 to 4.5.1 by @dependabot in #13467
- chore(deps): [security] bump jquery from 2.2.4 to 3.5.0 by @dependabot-preview in #13405
- fix: Grid delete all should trigger form change by @surajshetty3416 in #13483
- fix: property to hide grid Delete button (backport #13439) by @mergify in #13479
- fix: cannot set shortcut for actions menu item by @nextchamp-saqib in #13396
- feat: Make url's clickable in text editor when typed/copied by @leela in #13468
- fix: encode error to add outgoing mail to sent folder by @leela in #13484
- fix: Allow to remove filters from shortcut completely by @surajshetty3416 in #13486
- fix: consider email accounts while checking email limits by @leela in #13476
- perf(minor): remove unnecessary comprehensions by @ankush in #13173
- fix(UI): fixed grid view for uneditable rows by @walstanb in #13489
- fix(test): Flaky TestAPI.test_update_document by @gavindsouza in #13454
- fix: do not delete user permissions for all the user (backport #13427) by @mergify in #13433
- fix(Workspace): Filter cards by country if specified (backport #13463) by @mergify in #13464
- fix: test failure due to uncommited transaction by @ankush in #13478
- feat: group by tags in report view by @nextchamp-saqib in #13400
- fix: Logical bug in DatabaseQuery.extract_tables by @gavindsouza in #13499
- fix: Do not append child table doctype in case of _aggregate_column by @surajshetty3416 in #13498
- feat: Feedback feature for Blog Post by @shariquerik in #13491
- fix: Allow guest to comment on Web Page & Blog Post by @shariquerik in #13466
- fix: Allow renaming Email Groups by @shariquerik in #13496
- fix: Check if folder exists before cleaning by @netchampfaris in #13508
- fix: Throttle set_open_count by @netchampfaris in #13510
- fix: incoming mail handler by @leela in #13516
- refactor: Website routing and rendering by @rmehta in #12334
- fix: Avoid style leak from email or comment by @surajshetty3416 in #13520
- refactor: Form Tour (backport #13318) by @mergify in #13506
- fix: remove deprecated field
image_view
from Customize Form by @sagarvora in #13536 - chore(deps): bump set-getter from 0.1.0 to 0.1.1 by @dependabot in #13539
- fix: Add checkbox css variables to common/css_variables by @shariquerik in #13533
- feat: Added real time chart javascript API by @codescientist703 in #13198
- feat: Added image field to the section_with_cards template by @codescientist703 in #13097
- fix: Router issue (backport #13261) by @mergify in #13547
- fix: Add frappe.rename_doc to Server Scripts by @netchampfaris in #13549
- feat: Form Tour for Grids by @nextchamp-saqib in #13528
- fix: OTP login verification fails by @conncampbell in #13170
- fix: drag and drop for kanban board by @pruthvi145 in #13565
- fix(website): Restore ability use get_context without params by @surajshetty3416 in #13558
- fix: use
<strong>
instead of<b>
by @sagarvora in #13557 - fix: styles for link field in webpages by @leela in #13584
- fix: Calendar view of a doctype by @leela in #13586
- fix(UI): Editor link popover & datepicker style by @surajshetty3416 in #13589
- fix: incorrect depends on evalutation with parent variables by @nextchamp-saqib in #13593
- fix: Prioritse TemplatePage over ListPage by @surajshetty3416 in #13596
- fix: ability to select email account even if only one account is allowed by @rtdany10 in #13482
- fix: route to orignal form after creating a new document by @hasnain2808 in #13515
- fix: workspace loading error by @leela in #13583
- fix: translation of email salutation by @barredterra in #13503
- fix: OTP login verification fails by @conncampbell in #13606
- fix: Premature commit via notification's
send_an_email
by @marination in #13612 - ci(cypress): use env variable for record key by @ankush in #13616
- fix: Safe checks while setting doctypes_with_web_view cache by @gavindsouza in #13617
- chore(deps): [security] bump socket.io-parser from 3.3.0 to 3.3.2 by @dependabot-preview in #13621
- fix: Hide "Attach File" in form if max limit reached by @gavindsouza in #13619
- fix: Do not set base template for each file / route by @surajshetty3416 in #13631
- refactor: set amended docname to original docname by @prssanna in #13244
- fix: remove not needed six import by @leela in #13632
- fix: Remove meta from pickling overhead by @sunnyakaxd in #13500
- feat: translate connection group label by @barredterra in #13575
- feat: print branch and commit on
bench version
by @barredterra in #13567 - fix: Revert "Merge pull request #13244 from prssanna/amended-doc-naming" by @leela in #13637
- fix(website): Minified JS asset load by @surajshetty3416 in #13641
- fix(Workspace): Pass doctype info for link item (backport #13628) by @mergify in #13646
- fix: removed red indicator from alert by @walstanb in #13647
- fix: use autocomplete for letterhead selection by @hasnain2808 in #13452
- fix: cannot read property
0
of undefined by @sagarvora in #13651 - perf: Index workflow action fields by @hasnain2808 in #13622
- fix: Allow navigation to folders that are nested inside 2 folders by @surajshetty3416 in #13662
- fix(form-dashboard): Enable
set_open_count
by @surajshetty3416 in #13664 - feat: Google Drive Picker by @barredterra in #12715
- fix: Make scrollbar thumb rounded by @surajshetty3416 in #13674
- fix: send me a copy not working by @hasnain2808 in #13670
- fix: Invalid Custom Report link on Workspace by @shariquerik in #13488
- fix: Accurately cast fieldtype in frappe.db.get_single_value() by @mituldavid in #13655
- fix: custom script to duplicate row not working in v13 (backport #13667) by @mergify in #13680
- chore(deps): [security] bump minimist from 1.2.0 to 1.2.5 by @dependabot-preview in #13630
- fix: Add missing fieldtypes for custom fields by @surajshetty3416 in #13689
- feat: different output formats for
bench version
by @barredterra in #13640 - fix: escape quotes before declaring variables when making a new app by @sagarvora in #13692
- chore: Drop Data Import Legacy by @gavindsouza in #13554
- fix: Duplicate if condition removed by @bhavesh95863 in #13687
- fix: sending document as an attachment through mail by @leela in #13698
- fix: dont refresh form dashboard in
layout.refresh_sections
by @sagarvora in #13650 - fix: added suitable filtering mechanism to link field by @codescientist703 in #13240
- fix: Code Editor scrollbar glitch by @shariquerik in #13701
- fix: Do not create energy points for disabled users by @surajshetty3416 in #13708
- fix(listview): Tag count query by @surajshetty3416 in #13685
- fix(NotFoundPage): Set default value for http_status_code by @gavindsouza in #13728
- ci: make semgrep check diff-aware by @ankush in #13720
- fix: Trigger workflow action on update_after_submit event by @surajshetty3416 in #13734
- fix: system notifications without email by @hasnain2808 in #13654
- fix: Move layout colors to common css_variables.scss by @surajshetty3416 in #13742
- fix(signature): Make pad only after the DOM is ready by @surajshetty3416 in #13744
- fix: Use 1em margin for p outside container by @surajshetty3416 in #13747
- refactor: set amended docname to original docname by @leela in #13697
- fix:
show Report
button in report view (backport #13749) by @mergify in #13751 - fix: multiple form tour issues by @nextchamp-saqib in #13605
- fix: Allow navigation to the document with # in the docname by @surajshetty3416 in #13730
- feat: Auto generate RTL styles using rtlcss by @surajshetty3416 in #13573
- fix: refresh dependencies on
awesomplete-selectcomplete
event by @sagarvora in #13756 - refactor: Request Language Resolution by @gavindsouza in #13703
- ci: Remove test suite TestFrappeHTTPRequest by @gavindsouza in #13768
- fix: web form child table issue by @pateljannat in #13778
- fix: Report print option by @surajshetty3416 in #13792
- refactor: Moving from raw queries to frappe orm by @Aradhya-Tripathi in #13753
- style: Add row numbering for report view print format by @leela in #13794
- Revert "refactor: set amended docname to original docname" by @leela in #13800
- fix: new-doc-2 not found error while duplicating record. by @shariquerik in #13809
- feat: Redis Authentication and namespaces for Redis queue instance by @leela in #13746
- perf: optimize recollecting routes for bench migrate by @hasnain2808 in #13786
- chore: Patch to drop Data Import Legacy by @gavindsouza in #13815
- fix: incoming emails are not sending to the task owners by @leela in #13816
- feat: Frappe Query Builder by @saxenabhishek in #13705
- perf: strain html before passing to bs4 by @hasnain2808 in #13785
- fix: Inbox View & Kanban View not loading by @shariquerik in #13788
- fix: some activities not rendering correctly by @shariquerik in #13830
- fix: multiple recorder ui fixes by @ankush in #13813
- fix: Error on updating docs via API by @deepeshgarg007 in #13694
- fix(routing): Check if href exists for a link by @surajshetty3416 in #13843
- fix: grid header missing when new column added through code by @shariquerik in #13805
- fix: Clicking area around list row checkbox opens doc by @shariquerik in #13775
- refactor(frappe.lang): frappe.translate.get_language by @gavindsouza in #13820
- fix: Get title only when necessary by @hasnain2808 in #13831
- chre(Snyk): Security upgrade snyk from 1.520.0 to 1.667.0 by @snyk-bot in #13790
- fix: Focus reset issue due to field refresh by @deepeshgarg007 in #13828
- feat: add put request to integration utils by @nextchamp-saqib in #13686
- feat: UX for Fetch From by @netchampfaris in #13760
- fix: handle case if position is not defined by @nextchamp-saqib in #13817
- fix: Remove unused queue by @ankush in #13836
- feat: set-password site command by @netchampfaris in #13826
- feat: Improvements in Webhooks (backport #13320) by @mergify in #13791
- feat: Icon Picker by @shariquerik in #13676
- fix: Report View single vertical scrollbar by @shariquerik in #13497
- fix: Better error message while uploading web image by @shariquerik in #13827
- fix: Ignore RTL conversion for datepicker library styles by @surajshetty3416 in #13860
- fix: improved execution logic for
has_permission
hook by @sagarvora in #13797 - fix: Show traceback if custom app installation fails with exception by @ChillarAnand in #13858
- feat: Internal link support in custom document links by @deepeshgarg007 in #13823
- feat:
PythonExpression
andPython
option with syntax validation forCode
field types by @ankush in #13707 - fix: standard pages message in website settings. by @dj12djdjs in #13711
- test: Adding Cypress tests for sidebar, timeline and email testing by @Komal-Saraf0609 in #13729
- perf: speed up link validation by @ankush in #13880
- feat: wrappable code editor by @hasnain2808 in #13857
- fix: validate code fields of children too by @ankush in #13879
- fix: do not reset doc_before_save on db_set by @SaiFi0102 in #13883
- fix: Show command and error message when an exception is raised by @ChillarAnand in #13885
- refactor: set amended docname to original docname by @leela in #13861
- fix: format string for formating date by @AfshanKhan in #13878
- feat: Image cropping and optimization by @mituldavid in #13835
- refactor: Add coverage context manager by @surajshetty3416 in #13889
- fix: Call
is_rtl
function to get the actual value by @surajshetty3416 in #13899 - test: Added test case for cancel functionality by @Komal-Saraf0609 in #13891
- style: split qb.table into doctype and table by @saxenabhishek in #13904
- feat: Improve LDAP implementation to be standards compliant by @jon-nfc in #13777
- fix: website_content_field based indexing fails since fields are not passed correctly by @hasnain2808 in #13907
- feat: frappe.ui.Scanner by @netchampfaris in #13855
- fix(DX): sourceURL to debug report and page JS by @ankush in #13839
- feat: allow duration fields in aggregate function fields by @nextchamp-saqib in #13395
- fix: ability to disable safe_render for template pages by @netchampfaris in #13842
- fix(deskUI): menu items reappear before inner page buttons disappear by @kevinpthorne in #13850
- chore(deps): bump path-parse from 1.0.6 to 1.0.7 by @dependabot in #13909
- feat: Execute queries directly in frappe.qb by @gavindsouza in #13841
- perf: Grid rendering by @rohitwaghchaure in #13926
- feat: Workspace 2.0 by @shariquerik in #13152
- ci(Mergify): configuration update by @surajshetty3416 in #13935
- ci: ignore js only changes while running unittests by @ankush in #13932
- perf: Grid rendering by @rohitwaghchaure in #13939
- fix: broken link by @scdanieli in #13946
- fix: Workspace 2.0 minor fixes by @shariquerik in #13952
- fix: rename cancelled docs patch query by @leela in #13961
- fix: Use IP Address instead of Email field by @shariquerik in #13553
- test: Add support for Testing-Library queries within Cypress tests by @mituldavid in #13959
- refactor(minor): Newsletter by @gavindsouza in #13915
- fix: broken template in password reset by @ankush in #13958
- fix: Only select active numeric field after layout refresh by @surajshetty3416 in #13987
- feat: autoreload for IPython by @pruthvi145 in #13868
- refactor(minor): Use frappe.db.delete instead of frappe.db.sql queries by @gavindsouza in #13985
- fix: Revert auto_commit after frappe.sendmail by @gavindsouza in #13984
- fix(ux): better message for removal of assignment (backport #13937) by @mergify in #14008
- fix: multiple issues with Email Inbox by @sagarvora in #13822
- feat(minor): Added app_name and app_logo in Website Settings by @rmehta in #14020
- fix: Workspace 2.0 Miscellaneous Fixes by @shariquerik in #13978
- build: Update datatable to 1.15.4 by @shariquerik in #14016
- refactor: Update test cases for core module by @surajshetty3416 in #13996
- Revert "ci: ignore js only changes while running unittests" by @gavindsouza in #14026
- fix: Use remove_all in file_manager.py by @surajshetty3416 in #14028
- fix(ux): Disable button while executing script by @netchampfaris in #13999
- test(UI): Fix flaky tests by @surajshetty3416 in #14034
- fix: dom element for sections breaks in form tours by @nextchamp-saqib in #13956
- patch: set title as label if extends is empty by @shariquerik in #14038
- test: Fix flaky test in timeline_email.js by @surajshetty3416 in #14037
- fix: 'dict' object has no attribute 'only_for' while updating boot context by @GangaManoj in #13635
- fix: Passed failfast flag to unit test runner in all scenarios by @ChillarAnand in #14033
- fix: Duplicate name columns in list_view when no title field defined by @ollyboy in #14006
- ci: Roulette for GHA by @gavindsouza in #14030
- fix: Total Row is hidden in Query Report & Script Report by @shariquerik in #14041
- test: Added test script for dashboard links by @Komal-Saraf0609 in #13921
- fix: Dashboard report link by @surajshetty3416 in #14052
- fix: only enabled users in mentions by @hasnain2808 in #14017
- feat: max_lines option in ace editor by @hasnain2808 in #13966
- feat: import/export captured recorder requests by @ankush in #14046
- refactor: Image cropping and optimization by @mituldavid in #14011
- fix: Faulty Export All rows visibility condition by @shariquerik in #14013
- fix(ci): Don't skip Coverage job unconditionally by @gavindsouza in #14059
- test: Navigating to folder nested inside 2 folders by @Komal-Saraf0609 in #13905
- fix: datetime field form validation by @shariquerik in #13532
- feat: add number format parameter in doc.get_formatted by @kennethsequeira in #13367
- fix: Handle null values in auto email report rows for XLSX format by @deepeshgarg007 in #13973
- ci: concurrency control for CI jobs by @ankush in #14061
- fix(ci): Run all builds on github push events by @gavindsouza in #14075
- feat: Bulk export from list view by @nextchamp-saqib in #13906
- fix: Retry get_redis_conn until Redis is available by @gavindsouza in #14071
- fix: Length change for docfield not updated in Database by @deepeshgarg007 in #13965
- fix(cleanup): cleanup email account, bug fix for web_template.js and more by @rmehta in #14083
- fix: Enable get_query/set_query for link selectors to get filtered list by @surajshetty3416 in #14050
- fix: Workspace 2.0 issues by @shariquerik in #14077
- fix: Show docstatus in list view through status indicator pill by @shariquerik in #14054
- fix(frappe.utils.data): Deprecate
cast_fieldtype
to usecast
for consistent return types by @gavindsouza in #13989 - fix: Enable Server Scripts by default by @netchampfaris in #14101
- ci: Use codecov for coverage reporting by @surajshetty3416 in #14105
- feat: Query Builder autocomplete hack by @vrslev in #14109
- chore: License fixes by @gavindsouza in #14112
- feat(minor): Packages! also cleanup of DocField and other minor fixes by @rmehta in #14123
- fix: RTL support for text editor (backport #14113) by @mergify in #14124
- feat: change custom button type by @nextchamp-saqib in #14074
- fix: Problems while using translations via Globe Symbol (develop) by @mergify in #14128
- fix: Dashboard Settings already exist error on first login by @shariquerik in #14111
- fix: Webform Permission for custom doctype by @shariquerik in #13594
- fix: node creation from tree view (backport #14114) by @mergify in #14127
- feat: Choose Letter Head when printing multiple documents from List / Report (backport #14099) by @mergify in #14108
- fix: customizing print formats (backport #14132) by @mergify in #14133
- fix: Bring back the missing Comments by @gavindsouza in #14129
- fix: miscellaneous Postgres issues by @saxenabhishek in #14062
- test: Fix flaky UI tests by @surajshetty3416 in #14138
- fix: Switch writes to primary when wrapped with read_only by @gavindsouza in #14142
- fix(Web Form): Add fields to row that haven't been added yet by @gavindsouza in #14143
- fix(UI): Incorrect text color on version document in dark mode by @shariquerik in #14147
- style: Fix formatting issues in address.py and contact.py by @anupamvs in #14152
- feat(minor): Show Processlist in System Console by @rmehta in #14155
- fix: Dont translate brand name by @akazyti in #14162
- fix: number format converting to decimals by @hasnain2808 in #13465
- fix(event streaming): Notify consumers on document cancel by @ahmadRagheb in #14160
- ci: use ubuntu-latest for all jobs by @ankush in #14085
- feat(minor): empty state for list view by @rmehta in #14179
- fix: Misc fixes by @gavindsouza in #14182
- fix: Total Row in query report still hidden by @shariquerik in #14183
- feat: ability to select a child in multi-select dialog by @nextchamp-saqib in #14176
- fix: publish realtime to work with localhost (backport #14174) by @mergify in #14196
- fix: cannot read property 'datamanager' of undefined (backport #14178) by @mergify in #14194
- fix(UI): Checked icon not visible in PDF by @shariquerik in #14125
- chore(Snyk): Security upgrade snyk from 1.668.0 to 1.685.0 by @snyk-bot in #14175
- fix: Pass no_default_fields parameter further down to recursive calls by @stephenBDT in #14158
- fix: add frappe.enqueue to server scripts by @netchampfaris in #14202
- Revert "fix: add frappe.enqueue to server scripts" by @netchampfaris in #14204
- fix: Login page issues by @surajshetty3416 in #14199
- fix: List view skeleton by @netchampfaris in #14206
- fix: Total Row hidden in query report by @shariquerik in #14209
- feat: Support for MariaDB 10.6 by @gavindsouza in #13954
- fix: Misc fixes by @gavindsouza in #14197
- feat: Site Maintenance commands by @gavindsouza in #13955
- feat: Run SQL directly in System Console by @netchampfaris in #14216
- fix(translation): Set translated text as html to get unescaped output by @surajshetty3416 in #14214
- fix(UI): Clicking area around file view row opens the file by @shariquerik in #14156
- fix: Use whoosh AsyncWriter to prevent write locks by @ChillarAnand in #14215
- fix: section with collapsible content jerk issue by @pateljannat in #14205
- fix: Workspaces 2.0 fixes by @shariquerik in #14224
- fix(grid): date or datetime fields disappearing on save by @sagarvora in #14139
- fix(UI): Checkbox hidden in List view in mobile view by @shariquerik in #14144
- fix(database): Fixed sql convention inconsistency by @MindLaborDev in #14230
- chore(deps): bump ipython to latest version by @ankush in #14192
- fix: CSV upload failure by @surajshetty3416 in #14235
- feat: Support for Column comparison in DatabaseQuery by @gavindsouza in #13845
- fix(develop): Drop support for Python 3.6 by @gavindsouza in #14237
- fix(grid): Delete all functionality by @surajshetty3416 in #14241
- fix: shift+tab keyboard navigation by @ankush in #14243
- fix(Workflow Action): Pass doc to attach_print to avoid "Not Found" by @surajshetty3416 in #14253
- fix: update record linking description in Note by @kennethsequeira in #14247
- feat: custom database port for read-only replica configuration by @lukptr in #14159
- refactor(UI): reset password page by @sumaiya2908 in #14173
- fix: Keep checkbox checked after updating checked rows by @shariquerik in #14110
- fix: properly queue tasks in
frappe.model.trigger
by @sagarvora in #14260 - fix: All all roles to create tags by @leela in #14262
- feat: Introduce rate-limiting for web forms by @shadrak98 in #14087
- feat: Tab Break fieldtype by @prssanna in #13036
- refactor(minor): Built Assets Management by @gavindsouza in #14271
- refactor: Show sync option only if mail protocol is imap by @leela in #14272
- fix: use decimal digits precision 9 instead of 6 while creating schema by @leela in #14276
- fix: rq utiliy module conflicts with redis queue's rq package by @leela in #14093
- fix: change field type Data to Small Text (backport #14273) by @mergify in #14284
- feat: provision to add multiple network printers by @anupamvs in #14151
- fix: Reloading doc before Setting Property After Alert by @shariquerik in #14048
- chore(deps): bump nth-check from 2.0.0 to 2.0.1 by @dependabot in #14270
- fix: set correct title in links table (backport #14291) by @mergify in #14295
- fix: Get unique records from backend for list by @shariquerik in #13849
- fix(Event Streaming): Doctype dependencies sync by @MaiIsmail in #14299
- refactor:
setup_database
for mariadb by @sagarvora in #14289 - fix: include doc details in workflow action email subject by @leela in #14312
- fix: Get background jobs info by @leela in #14313
- chore: Bump psycopg2-binary Python client by @gavindsouza in #14323
- fix: handle JSON content in run_doc_method (backport #13929) by @mergify in #14303
- test: Fixing Flaky UI test by @shariquerik in #14316
- test: run patch test for each major release and then to PR by @ankush in #14251
- feat: add on_get_node event in treeview by @nextchamp-saqib in #14310
- fix(Razorpay Settings): Save Errored Integration Request by @shridarpatil in #14320
- feat: pass filename as argument to print_by_server by @KrithiRamani in #14329
- fix: Leaderboard is not loading for user with language other than en by @shariquerik in #14327
- feat: frappe.errprint in the server script for debugging by @rohitwaghchaure in #14334
- feat: Discussions on website by @pateljannat in #14226
- fix: Include Theme for Apps section rendered twice by @shariquerik in #14307
- fix: Heatmap legend color not set when color theme is set by @shariquerik in #14332
- fix: remove pycups from requirements by @ankush in #14344
- fix: Remove Webserver's dependency on Redis by @gavindsouza in #14342
- feat: user wise configure grid columns by @rohitwaghchaure in #14130
- fix: File not attached in attachments, if file is uploaded from webform. by @shariquerik in #14328
- fix: filter on
HTML Editor
andMarkdown Editor
field types by @pruthvi145 in #14351 - feat: add context for "is (not) set" filter translations by @barredterra in #14357
- feat: additional filter support by @Aradhya-Tripathi in #14102
- fix: Fixed get_values by @Aradhya-Tripathi in #14361
- fix: use site path instead of site name to generate DB name by @pruthvi145 in #14353
- ci: Code coverage for JS files by @mituldavid in #14269
- fix: Resolved redefine object issue on webform load by @shariquerik in #14367
- fix: browser printing broken by @anupamvs in #14373
- docs: frappe school link in readme by @pateljannat in #14360
- fix: network printer settings permission issue by @anupamvs in #14376
- fix: date mismatches while displaying in short form by @leela in #14277
- fix:
convert_dates_to_str
converts everything exceptdate
objects by @sagarvora in #14340 - fix: custom dialog box not working by @rohitwaghchaure in #14386
- feat: option to set the width for the multi-select dialog box by @rohitwaghchaure in #14388
- feat: expose frappe.db.exists to Server Script by @sunhoww in #14370
- ci: Upgrade PY37 to PY39 by @gavindsouza in #14393
- fix: Make images in comments private by @mituldavid in #14371
- ci: fail CI if asset bundling fails by @ankush in #14364
- fix: include 'Duration' in fieldtype to fetch (fix #13625) (backport #14321) by @mergify in #14382
- feat(timeline): Shareable link for comment/communication by @surajshetty3416 in #14394
- fix: unable to delete role permissions by @sagarvora in #14397
- fix: Changing the drag icon in list settings by @shariquerik in #14362
- feat: Enhancements in Server Script by @deepeshgarg007 in #14140
- fix: Scrollbar is hidden when search modal is minimised by @shariquerik in #14325
- fix: Don't load entire SQL file into memory during restoration by @gavindsouza in #14401
- feat: Added safe query builder for server scripts by @Aradhya-Tripathi in #14363
- fix: Private images in comments are not visible by @mituldavid in #14414
- fix: Rate limiter on blog feedback by @shariquerik in #14322
- fix: Filter pop-up overlaps the Notification Window by @shariquerik in #14355
- fix: Hide 'Show Saved' filter button if there is no saved filters by @shariquerik in #14309
- fix: Customize is not listed in menu item [Print] by @anupamvs in #14429
- feat: single thread discussions by @pateljannat in #14380
- fix(report builder): Aggregation based on child table field by @surajshetty3416 in #14424
- feat: Hash based comparison migration by @saxenabhishek in #14246
- fix: app uninstallation failure if module def link field isn't called "module" by @ankush in #14427
- revert: Override link click to avoid page reload by @surajshetty3416 in #14448
- fix(Print Format): Permission check for default print format by @surajshetty3416 in #14449
- feat: prepending
tab
to doctypes in query builder by @Aradhya-Tripathi in #14454 - fix: Rollback while exiting console by @gavindsouza in #14459
- fix: child table layout in the web-form by @sumaiya2908 in #14473
- fix: Remove unnecessary missing_ok kwarg from unlink by @gavindsouza in #14475
- fix: Check if parent exist in col before getting doc by @surajshetty3416 in #14476
- feat: Add confirm password field by @sumaiya2908 in #14281
- fix: Set
limit_page_length
to get all letterhead by @surajshetty3416 in #14478 - chore: Try on FCloud button in README by @NagariaHussain in #14444
- fix: set missing
permlevel
for Role Profile by @sagarvora in #14483 - refactor: convert db.sql calls in core module by @saxenabhishek in #14100
- feat: Add enabled to Language by @hrwX in #14484
- ci: semgrep rule for db.sql by @saxenabhishek in #14481
- fix: remove/update older whitelist calls by @sagarvora in #14482
- feat: automatically reload web pages whenever JS/CSS assets are rebuilt by @sagarvora in #14238
- fix:
if_owner
constraint being applied wrongly by @sagarvora in #14471 - fix: handle negative duration by @barredterra in #14493
- fix: Loading state for query reports by @deepeshgarg007 in #14434
- fix: Miscellaneous issues by @surajshetty3416 in #14504
- test: Cypress UI test fixes by @shariquerik in #14503
- fix: Update check all checkbox based on checked rows in List View by @shariquerik in #14392
- fix: prevent report error for AttachmentLimitReached exceptions by @nextchamp-saqib in #14515
- refactor!: remove dev requirements from requirements.txt by @ankush in #14517
- feat: allow tuple of DocTypes as key by @barredterra in #14419
- fix: Info Timeline always shows current logged in user. by @shariquerik in #14519
- fix: Workspace 2.0 code cleanup by @shariquerik in #14266
- revert: Reverting single vertical scrollbar fix by @shariquerik in #14451
- feat: bulk rename allow merge option by @dj12djdjs in #14358
- fix: ignore
flags
infrappe.client.bulk_update
by @sagarvora in #14488 - feat:
setDefault
for JS Objects by @sagarvora in #14532 - fix(ux): debounce awesome_bar search by @ankush in #14538
- refactor: improved design for fetching values using
add_fetch
by @sagarvora in #14445 - fix: Changed default for Email Log from 90 to 30 days by @umairsy in #14543
- fix: remove debug statements by @ankush in #14531
- refactor: replacing raw SQL queries with frappe ORM by @Aradhya-Tripathi in #14441
- test: fix flaky awesome_bar test by @ankush in #14546
- test(website): Clear db.value_cache on tearDown [flaky] by @gavindsouza in #14548
- fix: do not pop
doctype
anddocname
by @sagarvora in #14556 - fix: consistent description for Live Reload by @sagarvora in #14554
- fix: set_value takes for_update for pypika objects by @Aradhya-Tripathi in #14552
- ci: move semgrep rules out of repo by @ankush in #14550
- feat: New Print Format Builder by @netchampfaris in #14134
- feat: allow fuzzy search in website search by @ankush in #14463
- refactor: move max_writes constant to a class var by @ankush in #14499
- fix: only import xmlrunner if coverage is required by @ankush in #14566
- fix: Misc fixes by @gavindsouza in #14564
- fix(ui): Make user-wise grid customization translatable by @vrslev in #14573
- fix: Website URL parsing function parses absolute telephone/phone tel: URLs as relative by @felixd in #14568
- fix: patch failure due to incorrect args in query by @ankush in #14575
- feat: add login fields to social login page by @sumaiya2908 in #14455
- fix: fixed erroneous query in translate by @Aradhya-Tripathi in #14578
- feat: handle timeout and deadlocks in db.sql by @nextchamp-saqib in #14305
- fix(dx): error message for missing system deps by @ankush in #14582
- fix: allow submitting comment with images only by @ankush in #14588
- fix: set maxlength property for Link fields by @sagarvora in #14576
- fix: Misc fixes by @gavindsouza in #14592
- feat: pdf to base64 convert by @rohitwaghchaure in #14602
- fix(minor): Don't allow changes to global hooks from server scripts by @adityahase in #14604
- fix: remove mutable defaults by @ankush in #14597
- fix: Check parent permission while doing
has_permission
for child by @surajshetty3416 in #14526 - fix(minor): Don't allow frappe.cache() methods in server scripts by @adityahase in #14609
- fix: ignore filename with dotted path by @rohitwaghchaure in #14617
- test: enable scheduler back after running the test by @ankush in #14798
- chore: Bump browserlist dependency by @gavindsouza in #14800
- fix: format between for creation/ modified by @hasnain2808 in #14501
- test: restore scheduler state after running tests by @ankush in #14801
- fix: generate dom id helper for jinja by @netchampfaris in #14802
- fix(minor): add classes for rtl for proper layout by @sumaiya2908 in #14846
- fix: patch failure due to new field in doctype by @ankush in #14843
- fix: old style links in global search by @ankush in #14834
- fix: clean
join
param when executingreportview.get
by @sagarvora in #14845 - perf: remove "track changes" from log-like doctypes by @ankush in #14558
- fix(UI): Translate preview popover data by @vrslev in #14842
- test: flaky sidebar test due to msgprint by @ankush in #14859
- feat(minor): Implement getitem in Base Document (backport #14855) by @mergify in #14866
- fix: login as user with browse command by @netchampfaris in #14854
- fix: Multi level custom report fix by @shariquerik in #14489
- fix: Fixed css for Primary Navbar template by @shariquerik in #14356
- chore: migrate docker to github actions by @revant in #14868
- refactor: Converting raw SQL queries using frappe ORM and frappe.qb by @Aradhya-Tripathi in #14547
- fix: minor fixes for API Access section in User by @sagarvora in #14594
- fix: minor fixes to whitelisted methods by @sagarvora in #14569
- refactor: minor code cleanup in auto_email_report.py by @abdgad in #14888
- feat: prepared report read from replica (backport to develop) by @lukptr in #14883
- fix: for frappe._dict deepcopy; Opened issue 14833 (backport #14889) by @mergify in #14914
- feat: add format dd.mm.yy to dateutils by @barredterra in #14879
- chore: Remove chat module by @codescientist703 in #14411
- revert: "chore: Remove chat module" by @surajshetty3416 in #14922
- refactor: converting raw SQL queries by @Aradhya-Tripathi in #14913
- feat: Encrypted Backups by @Anurag0911 in #14513
- chore: Remove Chat Module by @codescientist703 in #14926
- fix: dont update
modified
for changes due to nsm implementation by @ankush in #14928 - fix: Github API endpoint by @pateljannat in #14874
- revert: "feat(minor): Implement getitem in Base Document" (backport #14945) by @mergify in #14946
- fix: Dashboard Chart to support Child Table Doctype. by @shariquerik in #13995
- fix: restore
validate_link
by @sagarvora in #14943 - ci: use hotfix branches for patch test by @ankush in #14949
- fix: Reload user doctype to avoid patch failure by @surajshetty3416 in #14961
- refactor: a better way to cleanup older assets when newer ones are built by @pruthvi145 in #14530
- test: Cypress flaky test by @shariquerik in #14565
- build: Upgrade jQuery v3.5.0 to v3.6.0 by @shariquerik in #14956
- fix: cleaner implementation for link validation by @sagarvora in #14957
- fix(Signup Page): Last Step Page style by @sumaiya2908 in #14853
- chore: Clean up requirements by @ChillarAnand in #14958
- style: Discussions better empty state by @pateljannat in #14916
- fix: minor website styling fixes by @netchampfaris in #14952
- fix: lazy import weasyprint by @netchampfaris in #14983
- fix(patch): Ignore route conflict validation for Custom to Client Script Rename by @shariquerik in #14953
- fix: Replaced capitalize to to_title_case util method by @shariquerik in #14984
- refactor: New Feedback & Comment Design for Blog Post by @shariquerik in #14614
- fix: Fixed position of feedback(like, comment) by @shariquerik in #14985
- feat: Convenience methods for NestedSet {get_parent, get_children} by @barredterra in #13579
- feat: Editable grid/table pagination by @shariquerik in #14935
- fix: Set
assigned_by
to interaction_values for ToDos (backport #14932) by @mergify in #14995 - feat(ux): Option to disable EPS notifications by @ankush in #14992
- ci: add timeout to CI jobs by @ankush in #15000
- feat: Option to automatically switch desk theme based on system by @surajshetty3416 in #14998
- fix: Disable EPS by default by @kennethsequeira in #14993
- fix: Form UI broken by @shariquerik in #15002
- test: Cypress test fix for report_view by @shariquerik in #14997
- fix: optimise
mark_email_as_seen
by @sagarvora in #15001 - fix: Add fallback to desk theme to avoid failure by @surajshetty3416 in #15004
- test: print view should not show warning/errors by @ankush in #14972
- fix: Only allow group_by for list view data by @shariquerik in #15008
- fix: Only show report when there is data by @shariquerik in #15016
- fix: fixed list filters in get_values by @Aradhya-Tripathi in #14967
- fix: Exporting from report builder not exporting all rows by @shariquerik in #15020
- fix: Update installed apps on uninstall by @gavindsouza in #15027
- fix: parent doctype freezes by @sumaiya2908 in #14981
- fix: Make strings translatable by @mhbu50 in #15033
- fix: change Event subject data type from Data to Text by @ankush in #15017
- feat: add
get_checked_items
for query report by @pruthvi145 in #14988 - fix: Make symbols translatable by @tahir-zaqout in #14971
- fix: Use
get_all
instead ofget_list
for child doctype by @surajshetty3416 in #15038 - fix: Load assets required for geolocation control by @surajshetty3416 in #15040
- feat: allow more print page size options (develop) by @Alchez in #14577
- fix: set
Script Manager
as a standard role by @sagarvora in #15037 - fix: Give select permission to 'All' for workflow state by @shariquerik in #15044
- fix: Remove edit icon from quick entry to avoid browser crash by @surajshetty3416 in #15049
- refactor: 404 page by @sumaiya2908 in #15039
- feat: add no-git option in make-app command and boilerplate generation by @phot0n in #15028
- feat: add consecutive calendar week (WW) for naming series by @dgerhardt in #14514
- fix: Enable disable email notification for blog comment & feedback by @shariquerik in #14989
- refactor: Display errors in FilePreview by @mituldavid in #15003
- feat: diffview for client/server scripts by @ankush in #14555
- fix(Newsletter): append "open in web" only if enabled by @barredterra in #15056
- feat: Option to disable Event Reminders in Notification Settings by @ruchamahabal in #15066
- fix: Remove chart from report builder when saved without chart by @shariquerik in #15064
- fix: diffview styles by @hasnain2808 in #15067
- fix: navbar settings validation by @barredterra in #15073
- fix: delete prepared reports on deleting reports by @ankush in #15069
- fix: Don't pass kwargs that make_access_log can't handle by @gavindsouza in #15084
- refactor: Misc changes in commands by @gavindsouza in #15060
- fix: import option in doctype menu when allow import is not selected by @sumaiya2908 in #15081
- feat: Optionally sync multiple IMAP folders in
Email Account
by @mtraeber in #12608 - fix: add frappe.as_json for safe_exec scripts by @netchampfaris in #15094
- refactor: get_mapping_module doesn't need to access to instance by @gavindsouza in #15095
- fix: Correct the polish translations to correctly show buttons by @mjwhodur in #15093
- fix: Image link render as text in print format (copy #14942) by @mergify in #15091
- feat: Customizations onboarding and form tour fixes by @pateljannat in #15072
- fix: Dark mode style by @surajshetty3416 in #15099
- refactor: moving raw queries to frappe ORM by @Aradhya-Tripathi in #14987
- fix: return self after submit/cancel by @ankush in #15105
- feat(REST): OR filters in REST API by @ankush in #15103
- refactor: getting submitted linked reference documents by @leela in #14073
- fix: remove duplicate parent when child item option selected (backport #15101) by @mergify in #15110
- refactor: removed aggregation functions at db level by @Aradhya-Tripathi in #14457
- fix: Use separate API to insert route history by @surajshetty3416 in #15114
- refactor: Deferred insert for route history by @surajshetty3416 in #15120
- feat: Add an option to disable notification by @hrwX in #15102
- fix: Move site setup into background to fix timeouts by @leela in #14201
- fix: allow cancelling by PUT docstatus=2 by @ankush in #15104
- refactor: convert doctype db.sql calls by @saxenabhishek in #15071
- fix: Reset
lft
&rgt
in copy doc by @ruchamahabal in #15128 - fix: scrolling issues after minimize global search (backport #15127) by @mergify in #15131
- fix: multiple time global search minimize screen freeze (backport #15133) by @mergify in #15134
- fix: email patch failure (#15106) by @mtraeber in #15115
- fix: Add fallback option for time format when system defaults are not set by @ruchamahabal in #15150
- fix: Add
xcall
to Frappe's web bundle (backport #15146) by @mergify in #15152 - chore: better message for system updates by @ankush in #15154
- feat: reset user-wise grid config to default by @ankush in #15162
- ci: Use node version 14 to avoid node-sass failure in patch testing build by @surajshetty3416 in #15176
- fix(ux): validate max_attachment count on doctype by @ankush in #15125
- fix(newsletter): use md_to_html instead of markdown by @netchampfaris in #15165
- fix: form tour field in onboarding step by @pateljannat in #15157
- refactor: add separate padding for top and bottom in the complete signup page. by @sumaiya2908 in #15178
- fix: IndexError while handling sql timeout error by @nextchamp-saqib in #15179
- fix: cannot uninstall app with virtual doctype by @barredterra in #15136
- fix: fixed list of Field objects as fields in get_values by @Aradhya-Tripathi in #15170
- fix: Delete Event Producer Last Update on trash event of Event Producer by @ruchamahabal in #15174
- fix: Clarified docstatus transition exceptions by @this-gavagai in #15194
- fix: Allow Fetch From for a different link field of the same DocType by @ruchamahabal in #15199
- refactor: module profile by @barredterra in #15188
- fix(qb): Miscellaneous fixes by @Aradhya-Tripathi in #15198
- fix: Newsletter Enhancements by @netchampfaris in #15182
- fix: ReDoS bug: GHSL-2021-122 by @kevinbackhouse in #15201
- ci: fix mariadb-client install in CI by @ankush in #15226
- fix: valid parent doctype error by @kennethsequeira in #15233
- feat: copy error info to clipbaord + misc. fixes by @ankush in #15225
- fix: record name creating based on naming series and not as per the user input by @rohitwaghchaure in #15238
- fix: Web Form child table scroll issue by @pateljannat in #15230
- fix: Sales invoice cancellation error due to get_list by @nemesis189 in #15243
- fix: update modified of Singles by @barredterra in #15250
- feat: Zip files by @netchampfaris in #15253
- fix: reload doctype IMAP Folder in patch by @barredterra in #15256
- feat: build constant value cols by @saxenabhishek in #15212
- fix: Make query Postgres compatible by @shridarpatil in #15240
- feat: sanitise frappe.qb by @saxenabhishek in #15180
- fix: Make query Postgres compatible by @shridarpatil in #15239
- refactor: breadcrumbs for portal pages by @sumaiya2908 in #15221
- fix: not able to go back from user profile page by @phot0n in #15265
- fix: remove bench path from traceback by @ankush in #15268
- feat: patched frappe email to work with frappecloud mail app by @rutwikhdev in #15248
- chore: VS2022 uses .vs - Add .vs to .gitignore. by @shadowoneau in #15276
- fix:
get_doc
owner permission by @surajshetty3416 in #15281 - fix: different icons for different events in the timeline. by @sumaiya2908 in #15284
- fix: display of sr no in child table of a web form by @sumaiya2908 in #15279
- chore: raise threshold for patch coverage to 85% by @ankush in #15219
- fix: Error code for "user not found" by @akazyti in #15223
- fix: Combine request args and form data by @surajshetty3416 in #15293
- fix: import doc / fixtures by @barredterra in #15288
- feat: Document States by @netchampfaris in #15237
- fix: select perm not visible in role permission summary dialog by @ruchamahabal in #15300
- fix(Translations): Timeline added/removed rows fieldname (copy #15301) by @mergify in #15302
- fix: Show unique records in list view by @shariquerik in #15175
- fix: Text Editor Height by @pateljannat in #15306
- fix(ux): always show scan barcode button by @nextchamp-saqib in #15309
- fix: reload doctype state early to fix patch by @netchampfaris in #15311
- fix(performance): list view bulk operations by @netchampfaris in #15299
- feat: keyboard shortcuts for the grid by @rohitwaghchaure in #14438
- fix: set invalid link fields to
null
instead''
by @ankush in #15320 - fix: use
get_all
instead ofget_list
while fetching linked doctypes by @ruchamahabal in #15331 - fix: upload jpeg image with alpha channel by @phot0n in #15280
- feat: Convert datetime field values to system timezone by @hrwX in #13504
- fix: Server Script UX by @netchampfaris in #15334
- feat: add number format for BTC by @v0l in #15220
- fix: set empty lists for unset meta table fields by @netchampfaris in #15340
- perf: improve translation speed by @sagarvora in #15337
- fix: syntax error in using frappe.qb in email_account.py by @kamaljohnson in #15336
- fix(db): fixed distinct in get_values by @Aradhya-Tripathi in #15344
- fix(Translations): Search suggestions for lists, reports etc (backport #15305) by @mergify in #15346
- fix: User Account Deletion Flow by @pateljannat in #15142
- feat: make rating field's stars customizable with options field by @DeeMysterio in #15203
- fix: more button in multi-select dialog by @nextchamp-saqib in #15312
- fix: value associated with property may be changed by @hrwX in #15352
- fix: Escape matching pattern for substitution by @gavindsouza in #15362
- feat:
before_uninstall
andafter_uninstall
hooks by @phot0n in #15339 - fix: treeview expanding at random by @ankush in #15287
- test: Fix flaky test of language selection by @surajshetty3416 in #15373
- fix: wrong website generator import tag by @phot0n in #15377
- feat: Half star rating (4.5 out of 5) by @shariquerik in #15368
- fix: misc setup_wizard region slide by @saxenabhishek in #15277
- fix: Barcode rendering in server side printing (backport #15383) by @mergify in #15384
- fix: default to 'en' if no language in settings by @cpdeethree in #15381
- feat: translations in Data Import by @sagarvora in #15318
- feat: SQL savepoints by @ankush in #15379
- fix(ui): Rendering forms created by disabled users (backport #15371) by @mergify in #15391
- feat: Custom signup form hook by @pateljannat in #15355
- fix: use python _ instead of __ by @hrwX in #15400
- fix(restore): Repopulate db_tables cache after database restore by @adityahase in #15404
- fix: Clear fetched field when link field is cleared by @sumaiya2908 in #15343
- fix: set year to current year in Script Report boilerplate (copy #15422) (backport #15428) by @mergify in #15429
- fix: mutating route history while get_last_doc by @ankush in #15427
- chore: update msg_print messages by @hrwX in #15413
- fix: Safe decode base64 data in case of incorrect padding by @gavindsouza in #15394
- fix: Incorrect timespan daterange calculation (backport #15369) by @mergify in #15431
- refactor(UI): Single card design for form by @shariquerik in #15438
- refactor: Fractional ratings patch by @gavindsouza in #15426
- fix: Handle custom child tables via check_parent_permission by @gavindsouza in #15437
- feat:
frappe.enqueue
andfrappe.call
for Server Scripts by @sagarvora in #15407 - test: import fixtures by @saxenabhishek in #15328
- fix: don't run webhook in migrate by @barredterra in #15449
- fix(datetime): Use
last_value
as a fallback if the model value isn't set by @surajshetty3416 in #15454 - fix: Grammar of error statement in 404 page by @wojosc in #15447
- fix: Workspace content loading twice by @shariquerik in #15439
- fix(print page): additional menu in mobile view print page by @karthikeyan5 in #15435
- fix: set fetch from values before checking permissions by @ruchamahabal in #15457
- fix: Rename Property Setter on Print Format Rename by @gavindsouza in #15458
- feat: option to not rebuild search on rename by @barredterra in #15443
- fix: Use makedirs instead of mkdir to create archived sites path by @ChillarAnand in #15434
- fix: Use
frappe.permissions.has_permission
for proper error message by @surajshetty3416 in #15467 - test: Test case for archiving site before dropping by @ChillarAnand in #15464
- fix: translations in setup wizard by @hrwX in #15401
- fix: do not validate if options is undefined by @shariquerik in #15470
- fix: unhide context field by @hrwX in #15485
- perf: BaseDocument improvements by @vrslev in #15398
- fix: Check if value for
applicable_for
exists before setting it null by @surajshetty3416 in #15497 - fix(ux): add "Show Dashboard" check for tab breaks by @rmehta in #15503
- fix: renaming a document updates the modified timestamp by @nextchamp-saqib in #15508
- fix: Do not allow rebuilding of tree for doctypes without
lft
&rgt
by @surajshetty3416 in #15504 - fix: Use copy of an array while adding new content for proper change trigger by @surajshetty3416 in #15507
- refactor: Re-arrange fields in User DocType by @surajshetty3416 in #15498
- feat(blog): Browse by category by @netchampfaris in #15363
- feat: savepoint contextmanager by @ankush in #15516
- fix: Route options not getting set while navigating from one report to another (backport #15477) by @mergify in #15520
- feat(minor): copy link to clipboard by @ankush in #15523
- fix: Remove internal owner field used in existing tables by @gavindsouza in #15521
- fix: Constant fields for documents by @gavindsouza in #14918
- fix(postgres)!: transactions implementation for PostgreSQL by @ankush in #15495
- fix(blog): Load more with category filter by @netchampfaris in #15526
- fix: Revert breaking API change in Assign To by @gavindsouza in #15527
- fix: avoid cached results for
table_exists
during install by @ankush in #15529 - fix: clear cache for all docs matched with the filters passed as
dn
param inset_value
by @pruthvi145 in #15492 - fix(ldap): Auto-negotiate the highest TLS protocol version supported by client & server by @supergicko in #15517
- fix: set
first_response_time
only if communication is sent by @nextchamp-saqib in #15533 - fix: Time zone info in web form by @pateljannat in #15468
- fix(Migrate): add unique and index for new columns by @SaiFi0102 in #15484
- fix: Allow
get_payment_gateway_url
method for any doctype by @harshpwctech in #15423 - fix: FrappeClient post_api request being redirected to GET request by @gavindsouza in #15542
- feat: Setting to configure the day on which a week starts by @surajshetty3416 in #15502
- fix: Single card form css fix in dark mode by @shariquerik in #15554
- feat: Multistep webforms by @hrwX in #14978
- feat: add translations to datatable by @hrwX in #15551
- fix: awesomeplete line wrapping by @barredterra in #15543
- fix: communication method "get_contacts" by @ahmadpak in #15564
- fix!: drop py3.7 support for v14 by @ankush in #15569
- fix(datetime): Side effect due to
__run_link_triggers
by @surajshetty3416 in #15580 - fix: SQL queries to improve Postgres support by @cpdeethree in #15354
- fix: email fetch error for imaplib by @sumaiya2908 in #15581
- fix: limit in
Document.get
by @pruthvi145 in #15574 - fix(date): Pass date object instead of string for selectDate to work by @surajshetty3416 in #15586
- fix: enable languages inserted during setup by @ankush in #15588
- fix: catch exceptions while parsing json on request failure by @nextchamp-saqib in #15549
- refactor(UI): cleanup portal pages by @sumaiya2908 in #15436
- fix: allow longer authorization URIs by @Alchez in #15563
- fix: html mode for ace editor by @sumaiya2908 in #15591
- fix: fixed
frappe.db.escape
in query generated by query builder by @Aradhya-Tripathi in #15483 - fix(minor): Is Custom field placement in Role form by @ruchamahabal in #15601
- refactor: Test Commands by @gavindsouza in #15597
- fix: Add toggle theme as standard dropdown option by @surajshetty3416 in #15610
- fix: load user_info on-demand by @rmehta in #15606
- fix: data exporter throwing exception by @ruthra-kumar in #15561
- fix: AttributeError when calling frappe.permissions.$function by @ankush in #15615
- fix: patch for validating options field by @shadrak98 in #15565
- fix(session): Do not logout on restarting bench by @surajshetty3416 in #15627
- refactor: use
is None
instead of== None
by @barredterra in #15632 - build: Upgrade Frappe Gantt from 0.5.0 to 0.6.0 by @shariquerik in #15635
- feat: Add click-drag scrolling to kanban boards by @skjbulcher in #15641
- fix: datatable column resize in rtl by @netchampfaris in #15636
- fix: the YYYY.MM.DD format not working for the document naming rule by @rohitwaghchaure in #15634
- fix: document email in timeline by @barredterra in #15592
- fix: customize same property for multiple rows of DocType Link / DocType Action by @pruthvi145 in #15491
- fix: Recursive routing for Form route by @pruthvi145 in #15539
- fix(patch): reload property setter for new fields (backport #15654) by @mergify in #15655
- fix: Set toast's background color based on alert type by @surajshetty3416 in #15659
- fix: Update colors of standard alert classes by @surajshetty3416 in #15663
- fix(ux): increase modal dialog size for diffview by @ankush in #15666
- fix: allow custom queues (backport #15653) by @mergify in #15667
- fix: Set first day of the week for date range by @surajshetty3416 in #15669
- chore: add translation context to strings by @barredterra in #15649
- chore: add exists check for web form ui test by @hrwX in #15684
- fix: correctly compute doctype name from table name by @ankush in #15692
- fix(translation): Update de.csv by @wojosc in #15697
- build(deps): bump nanoid from 3.1.22 to 3.2.0 by @dependabot in #15685
- refactor: use
is bool
instead of== bool
by @barredterra in #15639 - fix: padding and bg for portals by @sumaiya2908 in #15694
- feat: time field in webform by @hrwX in #15703
- fix: translate fieldname in report dialog and alert by @barredterra in #15682
- fix: Module path for external print formats by @Don-Leopardo in #15418
- fix: permissions for payment gateway doctype by @phot0n in #15699
- fix: Sync
index
&unique
constraint changes in DB by @surajshetty3416 in #15680 - feat(minor): Add more Sort options in List views by @gavindsouza in #15709
- test: fixing failing UI test by @shariquerik in #15710
- ci: Run cypress tests on each re-run by @surajshetty3416 in #15716
- fix(Custom DocPerm): Use Link type instead of Data for parent by @gavindsouza in #15715
- test: Remove focus to avoid double focus by @surajshetty3416 in #15727
- fix: Get timezone in user_info by @shariquerik in #15724
- fix: return docs from
frappe.model.sync
by @ankush in #15734 - fix: revert gateway_settings and gateway_controller to be non mandatory fields in payment gateway doctype by @phot0n in #15729
- feat: post model-sync patches by @ankush in #15351
- test: flaky report_view UI test fix by @shariquerik in #15730
- fix(Customize Form): delete translation for renaming only if label is empty by @pruthvi145 in #15568
- fix(User Type): Select perms not updated for link fields in child table by @ruchamahabal in #15707
- feat: Workspace 2.0 new design 🎉 by @shariquerik in #15335
- fix: dont auto drop manually created index on text types by @ankush in #15739
- fix: Remove salutation from email composer by @surajshetty3416 in #15740
- fix: ignore empty
patches.txt
file by @ankush in #15744 - feat: get_count, get_stats for virtual doctype by @hrwX in #15722
- fix(File): Handle file_path is None by @tundebabzy in #15552
- revert: server script errors by @netchampfaris in #15758
- fix(text-editor): Code block style by @surajshetty3416 in #15759
- fix: Show image in sidebar in mobile view by @shariquerik in #15752
- chore: update de.csv by @wojosc in #15762
- fix(boilerplate): add .gitkeep in public folder by @netchampfaris in #15765
- fix: Add patch to remove chat related doctypes by @surajshetty3416 in #15777
- fix!: Misc fixes by @gavindsouza in #15763
- fix: show sidebar in nav for md and sm screen size by @hrwX in #15783
- fix: unknown method unescape on html2text by @ankush in #15796
- fix: translate title in msgprint by @barredterra in #15768
- feat: signature field in webform by @OneiricIT in #15771
- feat: add Attach Image in add_fetch by @hrwX in #15799
- refactor!: remove post and post comment doctypes by @phot0n in #15786
- chore: Update de.csv by @wojosc in #15802
- fix: New Print Format Builder fixes by @netchampfaris in #15792
- fix(ux): show report button on too many writes error by @nextchamp-saqib in #15614
- test(User Type): add select perm doctypes by @ruchamahabal in #15805
- test: commented out lines in patches.txt by @ankush in #15818
- fix!: remove unnecessary array transformation in request args by @netchampfaris in #15784
- fix: communication missing from form timeline by @ankush in #15821
- refactor: frappe.db.set_value by @gavindsouza in #15560
- fix: Thumbnail for external images (from URL) by @gavindsouza in #15661
- fix: user permission for restricting nested struct by @hasnain2808 in #14079
- fix: primary color for progress bar by @pruthvi145 in #15839
- feat: translate column names in export of report by @barredterra in #15679
- fix: primary color for checkbox and radio by @pruthvi145 in #15842
- chore: Update translations by @wojosc in #15851
- fix: Import
moment
indatetime.js
for web portal by @marination in #15831 - fix: Doctype name/table-name in database is limited to 64 character by @shariquerik in #15826
- fix(link): Call validate_link only if "value" is passed by @surajshetty3416 in #15776
- fix: delete chat message attachments by @nabinhait in #15852
- feat: add breadcrumbs in dashboard view by @sumaiya2908 in #15835
- fix: missing param_wrapper in recursive calls by @saxenabhishek in #15857
- fix: Return consistent time types by @gavindsouza in #15847
- fix: Ability to continue partially processed data imports by @deepeshgarg007 in #15829
- fix: child table filtering in multi select dialog by @nextchamp-saqib in #15803
- test: delete blog after test by @hasnain2808 in #15864
- fix(google-drive-picker): Trigger form attach on callback by @hrwX in #15823
- feat: utility methods for docstatus by @barredterra in #15515
- revert: "refactor: set amended docname to original docname" by @hasnain2808 in #15867
New Contributors
- @mustafaelagamey made their first contribution in #12886
- @FatenElhariry made their first contribution in #13107
- @sgtpepper9907 made their first contribution in #13106
- @rovertzxd made their first contribution in #13199
- @chromonav made their first contribution in #13303
- @AkshayKumarTripathi made their first contribution in #13330
- @krishnakanthati made their first contribution in #13346
- @getsali made their first contribution in #13051
- @pruthvi145 made their first contribution in #13565
- @mituldavid made their first contribution in #13655
- @ChillarAnand made their first contribution in #13858
- @dj12djdjs made their first contribution in #13711
- @Komal-Saraf0609 made their first contribution in #13729
- @jon-nfc made their first contribution in #13777
- @kevinpthorne made their first contribution in #13850
- @scdanieli made their first contribution in #13946
- @akazyti made their first contribution in #14162
- @lukptr made their first contribution in #14159
- @sumaiya2908 made their first contribution in #14173
- @MaiIsmail made their first contribution in #14299
- @KrithiRamani made their first contribution in #14329
- @felixd made their first contribution in #14568
- @abdgad made their first contribution in #14888
- @Anurag0911 made their first contribution in #14513
- @tahir-zaqout made their first contribution in #14971
- @phot0n made their first contribution in #15028
- @dgerhardt made their first contribution in #14514
- @mjwhodur made their first contribution in #15093
- @kevinbackhouse made their first contribution in #15201
- @shadowoneau made their first contribution in #15276
- @v0l made their first contribution in #15220
- @kamaljohnson made their first contribution in #15336
- @cpdeethree made their first contribution in #15381
- @supergicko made their first contribution in #15517
- @harshpwctech made their first contribution in #15423
- @ahmadpak made their first contribution in #15564
- @ruthra-kumar made their first contribution in #15561
- @skjbulcher made their first contribution in #15641
- @OneiricIT made their first contribution in #15771