Filters: Allow to filter by `done_at` field (in the frontend)

As suggested, I’m moving this topic from a Matrix Chat post to a feature request here on the community forum.

The main request is the ability to use a filter to show tasks that were marked as done in a given timeframe, similar to how the date selectors for “due date” and similar work. Main uses cases would be (for me) to create reports at the end of each week/month.

This is already possible using the API (as suggested in the chat room by others). I came up with the following, temporary curl-based solution for now (maybe helps to understand what I’m looking for):

curl \
    -H "Accept: application/json" \
    -H "Authorization: Bearer <TOKEN>" \
    "https://<VIKUNJA-TLD>/api/v1/tasks/all?filter_by[]=done_at&filter_value[]=2023-09-27T00:00:00Z&filter_comparator[]=less_equals&filter_value[]=2023-09-18T00:00:00Z&filter_comparator[]=greater_equals&filter_concat[]=and" \
        | jq -r '. | sort_by(.project_id, .done_at) .[] | "\(.project_id): \(.title) - \(.done_at) /// \(.description)]]]"' \
        | sed 's/\]]]/&\n\n\n\n\n\*\*\*\*\*\*\*\*\*\*\n/' \
        | head -c -2

Thanks for the awesome project! :slight_smile:

Sure, that should be fairly easy to add. Do you want to send a PR?

Sure, I can try. :slight_smile:

From a quick look at the project structure, I’d assume that it requires adding another div.field (with the appropriate changes, of course) in src/components/project/partials/filters.vue. Does that seem correct?