Frappe Technologies
Screenshot 2023-10-25 at 10.48.41 PM.png
Product Updates for February 2025
Short month, big events.
author

By

Jannat Patel

·

28 February 2025

·

12

min read

February is the shortest month of the year but we had two major events this month. In the first week, Frappe had its first international conference, Frappeverse Africa 2025. You can watch the livestream of the conference here.

africa.jpg

The second event was our first team offsite of 2025. It was in Mahabaleshwar, a cozy hill station in the Western Ghats of Maharashtra. We had insightful discussions on transparency, open source, and excellence along with our traditional offsite rituals, karaoke, cricket, and random trails and walks.

mahabaleshwar.jpeg



Here are the updates from the team for the shortest month of the year...

Table of Content

  1. Framework
  2. ERPNext
  3. Frappe HR
  4. Frappe Cloud
  5. Learning
  6. Insights
  7. CRM
  8. Builder
  9. Drive
  10. Helpdesk

Child table pagination

Previously, the Child table pagination records were not configurable and were fixed at 50. Now, you can easily configure the number of records displayed per page in the Child table.

Contributed by: Hardik Zinzuvadiya

Sticky Left-Aligned Columns in Child Tables

Users can now stick columns to the left while scrolling in child tables, allowing them to keep the required columns fixed to the left as they scroll through the records.

Sticky Left-Aligned Columns in Reports

Reports now support sticky columns, which remain fixed to the left while scrolling in the report.

UX Improvements

Paid Amount and Received Amount in Payment Entry will be auto-set based on each other. This is limited to an unsaved document with both the fields unset.

Update Items popup in Sales Order & Purchase Order will now display both Item Code and Item Name

Contributed By: UmakanthKaspa

update_items.png

Process Statement of Accounts now supports multiple email recipients for individual Customers

Contributed By: Sudharsanan Ashok

multiple_receipients.png

Sales Order now supports Item level Accounting Dimensions

Contributed By: Sugesh G

so_items.png

The Gross Profit report now has Total rows for all types of groupings: Invoice, Item Code, Item Group, etc.

Contributed By: Sanket Shah

contextual<em>total</em>rows2.png

A checkbox now controls Auto-Fetch Timesheet on Project selection behavior

Contributed By: Venkatesh

project_settings.png

Bug Fixes:

Fixed a bug involving Lower Cost Deduction and TDS calculation. If LDC is set @ 0%, Net amount of Purchase Invoices within LDC's period will not be considered for TDS calculation for Purchase Invoice outside LDC.

Ruthra Kumar Engineer

Don’t Enforce Free Items

In the pricing rule added the checkbox “Don't Enforce Free Item Qty” to allow users to remove free items from the transactions if free items do not exist in the stock

Screenshot 2025-02-28 at 4.11.21 PM.png

Incorrect Serial and Batch Bundle Report

The report identifies incorrectly created serial and batch bundle entries that are causing incorrect stock calculations. Users can delete these entries using the 'Remove SABB Entry' button.

Screenshot 2025-02-28 at 3.16.41 PM.png

Provision to Enable Naming Series for SABB

By default, the naming for the serial and batch bundle will be hash-based. However, with the option Set Serial and Batch Bundle Naming Based on Naming Series in the stock settings, users can set the naming based on the Naming Series for the SABB.

Screenshot 2025-02-28 at 3.09.26 PM.png

Bug Fixes

  1. Improved the performance of the stock entry submission with batches
  2. Letter head for quality inspection was not working
  3. In the quality inspection dialog, all items were being displayed even if the 'QI Inspection Required' option was not enabled.
Rohit Waghchaure Senior Software Developer

Automatically update the Last Sync of Checkin

The Last Sync of Checkin timestamp is the last known successful sync of employee check-ins for that shift type. This timestamp ensures that attendance is not marked until all the check-in logs for that shift have been synced. Updating this timestamp was the responsibility of the biometric sync tool because multiple biometric devices could be syncing the logs.

However, when people check in from a single biometric device or via the Frappe HR mobile app, they have to manually update this timestamp or write a script to get auto attendance working. This was an unnecessary overhead. Hence, now there is a setting added in Shift Type to Automatically update Last Sync of Checkin. Enable this to let the system take care of auto-updating your last sync of check-in so that no scripting or manually updating this timestamp is required. Know more

last-sync-of-checkin.png

Rucha Mahabal Engineering Lead

Explicitly show Off-Shift Employee Check-ins

Only employee check-ins within the shift timings are linked with the shift type and considered for attendance. However, there were no visual indicators in the Employee Checkin form or list view for this.

offshift.png

For clarity, these employee check-ins will now explicitly be set as Off-Shift. You can then adjust your shift settings and fetch shifts in these check-ins again to consider these logs for auto-attendance.

fetch-shifts.png

Bug/UX Fixes

  1. Fixed calculation errors in the Income Tax Computation Report. Know more
  2. Income Tax Breakup fixes in Total Income Tax & CTC contributed by Sudharsanan Ashok
  3. Fixed the case when a leave policy assignment is made after the leave period. That implies the employee has earned all leaves. Know more
  4. Block users from updating shift timings when auto-attendance is pending for linked employee check-ins. Know more
  5. Added a validation in shift type for shift buffers causing overlap with itself (Begin check-in before shift start time & Allow checkout after shift end time). Know more
  6. Fixed duplicate employee check-in validation to block check-ins created within the same second. Know more
  7. Only show permitted attendance records in the Attendance calendar. Know more
Asmita Hase Engineer

Dark Mode

The Learning app now has dark mode. To change the theme click on the menu besides your name and select Toggle Theme. The system remembers your preference on your next visit.

Screenshot 2025-02-28 at 2.57.23 PM.png

You can now have courses, that are free for students to enroll, but have a paid certification add on. Instructors can easily enable the same from the course form.

Then students can enroll for the course, go through the content and then anytime decide to get certified. They will have to complete the payment and then appear for an evaluation. Once they pass the evaluation, they get certified.

Screenshot 2025-02-28 at 3.42.31 PM.png

Allow Guest Access

A Guest user means a user who is not logeed into the system. Such users can access the Course List, Course Details, Batch List and Batch Details page. To go any further they will have to log in.

However, some of you did not want Guest users to have access to any page of the system. This is now possible in the Learning app. From the settings, just disable Allow Guest Access and save. Guest users won’t have any access to the portal after this.

Screenshot 2025-02-28 at 3.25.53 PM.png

Cancel Evaluation

If a student had scheduled an evaluation and later wanted to cancel the same due to an emergency, there was no way for them to do so except reach out to the evaluator.

Now, for each scheduled evaluation students see an option to cancel their evaluation. However they can do so only till a day before the evaluation. They won’t be able to cancel their evaluation on the day it is scheduled.

Screenshot 2025-02-28 at 3.41.03 PM.png

Batch Enrollment Email Template

Previously, each time a student enrolled for a batch they received a standard email confirming their enrollment. This could be overridden using the Batch Confirmation Template field in the settings. However if you wanted to send different confirmation emails for different batches there was no way to do so.

Now, while creating a batch you can choose different confirmation email for each batch. This way, when a student enrolls for the batch, they get the confirmation email linked to that batch. If no template is set here, the template selected in settings gets preference. If that is empty too, the standard confirmation email gets sent.

Screenshot 2025-02-28 at 4.00.49 PM.png

Batch Reminders

If a student has enrolled for a batch months in advance, they may forget the exact start date of the batch and may end up missing the session. The same is true for live classes.

So to ensure students don’t miss any session students will now send email reminders for the same. Students will get batch reminders one day before the start of the batch and live class reminder on the day the class is scheduled.

Jannat Patel Product Engineer

Filter Widget on Dashboard

Previously, dashboards could be filtered using the same approach as the query builder (similar to list view filters in the desk). This worked well, but users have been asking for features that were available in v2, such as:

  • Setting default filters so that shared dashboards show filtered data by default. ref
  • Allowing only certain filters to be applied on the dashboard. #396
  • Applying a filter to multiple charts when they have the same column (e.g., filtering state across three different queries). #399

I decided to bring back the old way of filtering dashboard charts by adding a filter widget. This widget can be linked to multiple charts with a selected column to filter on.

MSSQL Database Support

Many users requested MSSQL support, and it's now available. While the integration might still have some rough edges, it works and has been verified by some community members. You can follow the setup steps in this pull request: here.

Max Statement Timeout

When a query is executed, it runs on the database and returns results. If it takes too long (e.g., longer than 180 seconds), the user gets a timeout error. The user may then tweak the query and run it again, but the original query is still running in the database until it finishes. Since the results are no longer needed, this creates unnecessary load.

To fix this, added an execution timeout setting in Insights Settings. If a query exceeds this time, it is automatically killed before returning results. The default timeout is 180 seconds.

Right now, this applies only to MySQL/MariaDB data sources.

Time Granularities

Previously, the smallest time grouping available was day. Now, you can group by hour, minute, and second as well.

Helper Functions

Added new helper functions for date calculations and filtering rows within a time range:

  • date_add(column, value, unit)

    • Add a value to a date column.
    • Units: seconds, minutes, hours, days, weeks, months, years
    • Examples:
      • date_add(order_date, 1, 'days')
      • date_add(order_date, 1, 'weeks')
  • date_sub(column, value, unit)

    • Subtract a value from a date column.
    • Units: seconds, minutes, hours, days, weeks, months, years
    • Examples:
      • date_sub(order_date, 1, 'days')
      • date_sub(order_date, 1, 'weeks')
  • within(column, timespan)

    • Filter rows within a time range.
    • Timespan formats: Last [N] [Parts], Current [Parts], Next [N] [Parts]
    • Parts: day, week, month, quarter, year, fiscal year
    • Examples:
      • within(order_date, 'Last 7 days')
      • within(order_date, 'Current month')
      • within(order_date, 'Next 2 weeks')

Fixes

Preventing Stale Local Changes from Overwriting Workbooks

  • Previously, if a user modified a workbook, unsaved changes were stored in local storage.
  • If the page was refreshed, the local changes were applied to the latest version fetched from the database.
  • This could cause issues if an older local version overwrote newer changes made by another user.
  • Now, this has been fixed. If you're on an older version and want to avoid this, enable auto-save for workbooks.
  • (image)

Embedding Dashboards on Other Sites

Fixed an issue where dashboards could not be embedded on external sites. #441

Contributions

  • Feature: Add rotate labels feature for bar charts. #389
  • Fix: Drilldown not working in table charts. #448
  • Feature: Support stored procedure execution. #437
Saqib Ansari Product Engineer

Custom Views

Since a long time agents and customers had to apply different filters and keep on chaning them on the same view, which results in repetitive work, to make the Agent’s as well as the Customer’s life easier we have introduced this feature.

This feature allows both stakeholders to have

  1. Organisation level views called “public views”. These are available on the sidebar of helpdesk and will be visible for all of the agents. Only Agent Managers can make a view “public”. (only available for Agents)
  2. Personal views: These are segregated into 2 further views
    • Private: These views will be visible on the sidebar of helpdesk, for easy access, and can be accessed by only the agent created the view
    • Saved views: Additional views which are not always accessed but good to have for easily filtering out tickets.

Actions available on a view:

Ritvik Sardana Engineer

Default View

By default, whenever you log in or go to /crm, you will be redirected to the leads list view. Then, based on what you as an agent work on every day, we can switch to deals or any other public or pinned view. To avoid this switching I have introduced this feature to set any view as default. After setting any view as default you will redirect to that view after login or if you go to /crm

Screenshot 2025-02-28 at 11.50.09 AM.png

Set mandatory fields while converting to deal

After creating a lead you can convert it into a deal, but if the deal has some custom mandatory fields while converting it throws a Mandatory fields validation error. I have extended the field layout in the Convert to Deal modal. The only difference is that you can only add mandatory fields in the modal.

Screenshot 2025-02-28 at 11.52.08 AM.png

It will be the managers responsibility to add the mandatory field here in this modal after adding it in the Deal doctype.

The link field in the CRM portal is used to only show the name of the record which can be anything like unique name, naming series, random text or sequential number. It is difficult for the user to select the correct record.

Screenshot 2025-02-28 at 11.54.03 AM.png

Similar to the desk, now the Link field option will show the title and description based on Show Title in the Link Fields & Title Field of the doctype.

Screenshot 2025-02-28 at 12.25.15 PM.png

Table multi-select control

Frappe CRM does not support all fieldtypes. I am gradually adding different controls as per the community's request.

I have introduced Table MultiSelect fieldtype support in CRM portal.

Screenshot 2025-02-28 at 11.55.55 AM.png

It is only supported in Data tab & Quick Entry Modal and not in Sidebar panel.

Shariq Ansari Product Engineer

Drop Target Indicator

Now you can drop your Block Templates and Components exactly where you want without having to reorganize them manually in the layer panel thanks to drop target indicator.

Contributed By: Rucha Mahabal

Sync Components Across Pages

Previously, only styles and attributes of components were synced across pages, while layout changes had to be adjusted manually. Now, after saving a component, you'll see a "Sync in all pages" button to apply layout changes across all pages.

Screenshot 2025-02-28 at 3.32.14 PM.png

Note: Automatic layout syncing will be introduced soon once the functionality is fully optimized.

Extend Head & Body HTML

Want to add custom library, scripts, styles, meta tag or schema markup to your page? You can do it by extending head or body HTML of the page.

Screenshot 2025-02-28 at 3.29.53 PM.png

Track Component Usage

Quickly get the glimpse of a component’s usage right from the component editing view.

Screenshot 2025-02-28 at 3.04.04 PM.png

You can now explicitly open any link in your text block in a new tab. This is mostly useful while dealing with external links.

Screenshot 2025-02-28 at 3.44.21 PM.png

Checkout all the other minor fixes and features included in the upcoming release.

Suraj Shetty Product Engineer

Teams rolled out of beta, with an automatic migration of current data. A new “personal” space (Home) has been added - so users can now enjoy the best of both worlds, personal files and a shared team structure.

The permissions structure, including the share dialog, has been revamped. Access is now expanded - reading, writing, commenting, and sharing privileges can now be given. Public files and folders are now supported, the share dialog is sleeker. You can share with users not currently on Drive.

image.png

The database level changes have been huge - apart from internal refactors, you, the user, can save a lot of database space too. While it will vary individually, our instance cut down ~70% in the two Drive doctypes.

The UI has been tweaked universally. The general improvements come from a move to frappe-ui. The list view, specifically, has had a lot of improvements to make it feel more like a native solution. The moving dialog now includes a nice touch: you no longer have to search for your folder through the breadcrumbs. Instead, “go to” the relevant one directly.

The refactors and switch to teams introduced bugs and broke many of the previous features. A lot of them (filters, notifications) are back now - others are in the pipeline. Also, basic keyboard shortcuts for navigation have been added.

While these features are now on master, allowing new users to test them, we did not officially launch Drive this month. Instead, we are preparing for a single frappedrive.com release, thereby making Drive easily accessible for individual customers.

Safwan Samsudeen Trainee Engineer

And that's it 👋

We are having the second edition of Frappe Build, our annual tech conference, in the first week of April. This time it's in Bengaluru. To register click on this link. See you next month!

Published by

Jannat Patel

on

28 February 2025
3

Share

Add your comment

Success!

Error

Comments

N
Noman Haider

· 

March 4, 2025

Really, lots of work done.

N
Nitesh

· 

March 4, 2025

Wanted this blog to never end, This is one of the few newsletter which i am most excited about , best wishes to the team

Q
QUANDM

· 

March 3, 2025

I haven't seen the updated features for ERPNext and Frappe Framework in the latest GitHub update yet. When are they expected to be available? Regards.

Discussion

image7f7d4e.png

Paul Mugambi

·

3 days

ago

Beautiful read, and an insight into an individual I respect and have learned a lot from. Am inspired to trust the process and never give up.

image4c43d6.png

Anna Dane

·

5 days

ago

I must say this is a really amazing post, and for some of my friends who provide Best British Assignment Help, I must recommend this post to them.

Add your comment

Comment