Opened 4 years ago

Last modified 20 months ago

#7592 new enhancement

List Voters or History

Reported by: aidinabedi@… Owned by: rjollos
Priority: normal Component: VotePlugin
Severity: normal Keywords: history
Cc: Trac Release: 0.11


This feature is very important in a small or medium-size teams where different voters are known to have differently qualified opinions. And also it is useful for large teams or open source projects to detect the authenticity of each voter to prevent cheating and misuse.

Attachments (0)

Change History (12)

comment:1 Changed 4 years ago by anonymous

  • Type changed from defect to enhancement

comment:2 Changed 4 years ago by rjollos

I think this could be implemented fairly simple in a macro or admin panel, depending on your preference. We might want a new permission, VOTE_ADMIN or similar, to control who can view the list.

I probably won't get to this for a while, but would gladly accept a patch.

comment:3 follow-up: Changed 4 years ago by clecuret@…

Could be great that if a person votes for an item, then he receives notifications when changes occur on this item

comment:4 Changed 2 years ago by rjollos

  • Priority changed from highest to normal

comment:5 Changed 21 months ago by hasienda

  • Keywords history added

History would not show much, because by now the time stamp is not recorded. Something to remember for next db schema version as this plugin's db code needs some love anyway.

comment:6 Changed 20 months ago by hasienda

(In [13084]) VotePlugin: Add code for WikiMacros, refs #4546 and #7592.

This is WiP yet.

comment:7 Changed 20 months ago by hasienda

(In [13085]) VotePlugin: Use time-stamped votes, refs #4546 and #7592.

Don't delete votes anymore, what is sensible, because we may become interested in voting history later on.

Two more wiki macros are available now, that already use these time stamps.

While using current microseconds POSIX time stamps internally, care has been taken to preserve backwards-compatibility down to Trac 0.11 here.

comment:8 in reply to: ↑ 3 Changed 20 months ago by hasienda

Replying to

Could be great that if a person votes for an item, then he receives notifications when changes occur on this item

I see your point, and voting is some kind of tagging indeed. But you're much better off using a dedicated plugin for managing subscriptions on your Trac resources of interest, i.e. AnnouncerPlugin or WatchlistPlugin.

comment:9 Changed 20 months ago by hasienda

OTOH this could become a special optional subscriber for AnnouncerPlugin indeed, right?

comment:10 Changed 20 months ago by hasienda

(In [13091]) VotePlugin: Pipe usernames through Chrome.format_author to obfuscate email addresses, if required, refs #4546 and #7592.

Additionally I've spotted and fixed an UnicodeDecodeError due to a not unicode-aware string replacement in [[LastVoted]] wiki macro.

comment:11 Changed 20 months ago by hasienda

(In [13093]) VotePlugin: Re-enable voting on milestones, refs #4546, #7592 and #10942.

delete_vote obviously needed to not depend on a req object to work. That went unnoticed, because it is called only by change listeners for now.

set_vote was not ready for unversioned resources, and a subtle insanity in resource_from_path surfaced during early testing with milestones too.

Method name changes are done for clarity, that a single method call probably deals with multiple vote entries.

comment:12 Changed 20 months ago by hasienda

(In [13094]) VotePlugin: Make compact and top standard wiki macro arguments, refs #4546 and #7592.

List output for all three macros is limited to a maximum of 5 items, if not explicitely specified by top=<n>, where in turn 'n=0' means unlimited. The previous limit of 10 items (TopVoted only) looked like too much.

And rendering of resource links respects the compact argument too, what yields significantly reduced output for milestones and tickets.

Add Comment

Modify Ticket

as new The owner will remain rjollos.

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.