Vote #77845
未完了Shows the date of the last activity on Projects administration.
0%
説明
On Administration > Projects, it shows the date of the last activity on each project. Helps the admin to decide when to close or archive stale projects.
journals
This is a screenshot of the feature.
!screenshot-23954.png!
But it should be considered that processing when @event@ variable is nil in the following code. It causes @undefined method `[]' for nil:NilClass@ error at the next line.
<pre><code class="ruby">
def last_activity(project)
event = Redmine::Activity::Fetcher.new(User.current, :project => project).events(nil, nil, :limit => 1)[0]
byebug
event[:updated_on].nil? ? event[:created_on] : event[:updated_on]
end
</code></pre>
--------------------------------------------------------------------------------
+1
--------------------------------------------------------------------------------
Go Maeda,
Thank you for your reply. I had already patched production (https://github.com/fredsdc/redmine/tree/3.2-patched), and I forgot I had posted the patch to Redmine.org. Fixed it again today to call last_activity function only once.
It now returns the project creation date if there is no activity in the project.
--------------------------------------------------------------------------------
Thank you for updating the patch. It works fine, looks good to me.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Although Jean-Phillipe Lang wrote on #13696#note-7 as follows, last activity is very useful to maintenance projects.
> We'll add this as an optional column when the project list will be made configurable (like the issue list).
In my opinion, "Last activity" is far more useful information than "Created".
Could this be a part of 3.4.0?
--------------------------------------------------------------------------------
Go MAEDA wrote:
> In my opinion, "Last activity" is far more useful information than "Created".
That's true!
+1
--------------------------------------------------------------------------------
Go MAEDA wrote:
> In my opinion, "Last activity" is far more useful information than "Created".
I'm not saying that this information is not usefull. It generates dozens of SQL queries and can make the project list really slow. We'll make this information available once the project list can be configured, but we can't add it by default now.
--------------------------------------------------------------------------------
Jean-Philippe Lang wrote:
> I'm not saying that this information is not usefull. It generates dozens of SQL queries and can make the project list really slow. We'll make this information available once the project list can be configured, but we can't add it by default now.
My thoughts exactly. I got it in production here and if you have dozens of projects, it generates lots and lots of queries. I kept it because it is just so useful, but with 400 projects and near 2000 issues, opening the admin projects page takes near 22 seconds.
I'm studying how to better query the database. Redmine::Activity::Fetcher only uses projects as filters. I would need to construct a table with each project id and its last activity using just a few SQL queries.
--------------------------------------------------------------------------------
I have a new patch. I added a new option to the fetcher library, if set, the result is a hash { project_id -> last_activity }, that I use in the view.
Summarizing I reduced the queries to one per event type, which takes now a fraction of a second to complete.
--------------------------------------------------------------------------------
I fixed a bug, and moved some code from the helpers to the controllers. I also had an idea how to always show some activity as Feature #3099.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
It worked on Redmine trunk with the same changes. note-11
Attach a screen copy of my environment.
Last activity is not displayed for projects with 0 tickets.
However, as it can be seen from the Created column, I think that it is enough as it is.
!23954-trunk-note11.png!
--------------------------------------------------------------------------------
I think we should add this column on top of #29482.
--------------------------------------------------------------------------------
+1
--------------------------------------------------------------------------------
Based on Frederico Camara work, I've created a patch that adds the "Last activity" column to the projects list.
Sorting by this column is not possible for now because I'm not sure how to implement it easily (the last activity date is calculated based on multiple tables). Any suggestion is welcome.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Slightly improved the patch in order to avoid some unnecessary joins when counting the number of results.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Updated the patch for current trunk.
@Jean-Philippe, I'm assigning to you in order to:
* review the changes proposed by Frederico Camara to activity fetcher
* check for any solution to enable projects sorting by last activity date
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Updated the patch to apply cleanly on the current trunk.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Can you please share the SQL query or API request in order to get the last activity date of every project ?
--------------------------------------------------------------------------------
zumo de vidrio wrote:
> Can you please share the SQL query or API request in order to get the last activity date of every project ?
As a hash:
<pre>
Redmine::Activity::Fetcher.new(User.current).events(nil, nil, :last_by_project => true).to_h
</pre>
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
related_issues
relates,New,13696,Projects admin, show issues count
relates,Closed,29482,Query system for Projects page
relates,New,805,Allow projects view to be sorted by activity
relates,New,3099,Last activity time window.
Admin Redmine さんが3年以上前に更新
- カテゴリ を Projects_11 にセット
- 対象バージョン を Candidate for next major release_32 にセット