Frappe Cloud

Marketplace

Better List View

Search for an app

Frappe

Products

Insights

Better List View
Frappe list view plugin that allows more customisations.

Install now

145

installs

Supported versions

Version 15, Version 14

Categories

Free
Utilities

E-Commerce

About

A small Frappe list view plugin that allows the following modifications:

  1. Setting additional fields to fetch without displaying their values
  2. Setting additional filters in the data query
  3. Setting the number of rows to display per page
  4. Setting parser function to modify row values on time

Available Options

⚠️ Important ⚠️

All the following options must be placed inside the "query" object. Check the Example below.

| Option | Description || :--- | :--- || fields | The additional list of fields to fetch without displaying their values. -Type: Array -Example: ['is_approved', 'is_paid'] || filters | The additional filter conditions to customize the data fetched. -Type: Object or Array -Example: {is_approved: 1, is_paid: 0} or [['is_approved', '=', 1], ['is_paid', '=', 0]] || page_length | The number of rows to display per page. -Type: Integer -Example: 50 || parser | The function that modifies row values on time. Must call resolve() after modification is done. -Type: Function -Parameter: row, resolve -Example: Check both ways listed in the example code below |


Example

```frappe.listview_settings['DocType'] = { // The list view modifications query: {

    // No columns will be created for these fields    fields: ['is_approved', 'is_paid'],    // Additional filters (array or object) to customize query    filters: {        is_approved: 1,        is_paid: 1,    },    // Only 50 rows will be displayed per page    page_length: 50,    // The function that modifies row values using one of the following ways    parser: function(row, resolve) {        // 1. Simply change row values directly         row.actual_qty = 10;        resolve();        // 2. Query db and modify row value        frappe.db.get_value('DocType', row.name, 'actual_qty')        .then(function(ret) {            if (ret &amp;&amp; $.isPlainObjecr(ret)) ret = ret.message || ret;            row.actual_qty = ret;            resolve();        });    },},// The fields listed above can be used inside the following functionsget_indicator: function(doc) {    if (doc.is_paid) {        return [__('Paid'), 'blue', 'is_paid,=,Yes|is_approved,=,Yes'];    }    if (doc.is_approved) {        return [__('Approved'), 'green', 'is_paid,=,No|is_approved,=,Yes'];    }    return [__('Pending'), 'gray', 'is_paid,=,No|is_approved,=,No'];},formatters: {    name: function(value, field, doc) {        let html = value;        if (doc.is_approved) {            html += ' <span class="fa fa-check"></span>';        }        return html;    },},

};```

User Reviews

No reviews yet, be the first to review.

0 rating

Rate and share your experience

Text

Explore more apps