Listview filtering with created_by(User DocType) field

I have DocType Project with the two following fields
Project Name: Data
Created By: Link (User core)

I have created project_list.js according to documentation with the following code
the issues are:

  • list is not getting filtered should show only projects where created by is current logged in user
frappe.listview_settings['Project'] = {
    // add fields to fetch
    add_fields: ['project_name'],
    // set default filters
    filters: [
        ['created_by', '=', frappe.session.user]
    ],
    hide_name_column: true, // hide the last column which shows the `name`
    onload(listview) {
        // triggers once before the list is loaded
    },
    before_render() {
        // triggers before every render of list records
    },

    // set this to true to apply indicator function on draft documents too
    has_indicator_for_draft: false,

    get_indicator(doc) {
        
    },
    primary_action() {
        // triggers when the primary action is clicked
    },
    get_form_link(doc) {
        // override the form route for this doc
    },
    // add a custom button for each row
    button: {
        show(doc) {
            return doc.reference_name;
        },
        get_label() {
            return 'View';
        },
        get_description(doc) {
            return __('View {0}', [`${doc.reference_type} ${doc.reference_name}`])
        },
        action(doc) {
            console.log("action")
            frappe.set_route('Form', doc.reference_type, doc.reference_name);
        }
    },
    // format how a field value is shown
    formatters: {
        project_name(val) {
            return val.bold();
        },
    }
}

this is not working

onload(listview) {
        console.log("user ->", frappe.session.user)
        frappe.route_options = {
			created_by: frappe.get_doc("User", frappe.session.user),
		};
        // triggers once before the list is loaded
    },

Hi @Umair_Mehmood,

Please apply it.

frappe.listview_settings['Project'] = {
	onload: function(listview) {
			frappe.route_options = {
				"owner": frappe.session.user
			};
	}
};

Then reload and check it.

Thank You!

2 Likes

it sets a default filter and by removing this user can see projects which are created by other owners

That for, please go to the Role Permission Manager and select the doctype.

Please enable the Only If Creator in project user and project manager.

Then reload and check it in the project doctype, only the project show which user created the project.

Thank You!

1 Like

Thanks that worked. so there is no reason to write some_doctype_list.js