User Tools

  • Logged in as: anonymous (anonymous)
  • Log Out

Site Tools


mantisbt:issue_voting_requirements

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mantisbt:issue_voting_requirements [2008/02/19 19:46]
CADbloke
mantisbt:issue_voting_requirements [2011/11/16 07:39] (current)
atrol The page rendering was broken (maybe since new PHP version on mantisbt.org). Added new line to fix it at end of file.
Line 1: Line 1:
 ====== Issue Voting Requirements ====== ====== Issue Voting Requirements ======
 +
 +**Author:** Victor Boctor
  
 ===== Introduction ===== ===== Introduction =====
Line 7: Line 9:
 ===== Database Schema Changes ===== ===== Database Schema Changes =====
  
-  * mantis_bug_table +  * mantis_bug_table ​(DONE) 
-    * votes_positive as integer. +    * votes_positive as integer.  
-    * votes_negative as integer. +    * votes_negative as integer.  
-  * mantis_bug_votes_table +  * mantis_bug_votes_table ​(DONE) 
-    * issue_id+    * issue_id ​
     * user_id     * user_id
     * weight (can be positive or negative, typically -1 or +1), can't be 0.     * weight (can be positive or negative, typically -1 or +1), can't be 0.
Line 17: Line 19:
 ===== Configuration Changes ===== ===== Configuration Changes =====
  
-  * voting_enabled (boolean, default true) - enable or disable the whole voting feature. +  * voting_enabled (boolean, default true) - enable or disable the whole voting feature. ​(DONE) 
-  * voting_place_vote_threshold (default REPORTER) - access level required for users to vote on issues. +  * voting_place_vote_threshold (default REPORTER) - access level required for users to vote on issues. ​(DONE) 
-  * voting_view_user_votes_threshold (default DEVELOPER) - access level required for users to view the users who voted and their votes.+  * voting_view_user_votes_threshold (default DEVELOPER) - access level required for users to view the users who voted and their votes. ​(DONE)
  
 ===== Votes Columns ===== ===== Votes Columns =====
  
-  * It should be possible to expose the positive, negative or overall votes as a column in export csv, Excel, View Issues, etc.  Overall votes are positive votes minus negative votes.+  * It should be possible to expose the positive, negative or overall votes as a column in export csv, Excel, View Issues, etc.  Overall votes are positive votes minus negative votes. ​(DONE)
  
 ===== View Issue Page ===== ===== View Issue Page =====
  
-  * The view issues page should allow users to vote positively or negatively. ​ Also if users have already voted before and the issue is not resolved, then they can remove their vote. +  * The view issues page should allow users to vote positively or negatively. ​ Also if users have already voted before and the issue is not resolved, then they can remove their vote. (DONE) 
-  * Display the total number of positive / negative votes (kind of thumbs-up / thumbs-down counters) +  * Display the total number of positive / negative votes (kind of thumbs-up / thumbs-down counters) (DONE
-  * The list of users who voted positively or negatively are listed in the same way users monitoring the issue are listed.+  * The list of users who voted positively or negatively are listed in the same way users monitoring the issue are listed. ​(DONE)
  
 ===== The Act of Voting ===== ===== The Act of Voting =====
  
-  * Ensure that users can vote (i.e. have the required access level). +  * Ensure that users can vote (i.e. have the required access level). ​(DONE) 
-  * If users have voted before for this issue, and their new vote is different then remove their current vote. +  * If users have voted before for this issue, and their new vote is different then remove their current vote. (DONE) 
-  * Add a record in the votes table. +  * Add a record in the votes table. ​(DONE) 
-  * Update overall counters on the issue. +  * Update overall counters on the issue. ​(DONE) 
-  * DO NOT update ​issue last updated timestamp ​(this is consistent with the bug monitor behavior).  If necessary we can make this behavior configurable. +  * <del>DO NOT</​del>​ Update ​issue last updated timestamp. ​ If necessary we can make this behavior configurable. ​(DONE) 
-  * Update Issue History+  * Update Issue History ​(DONE)
  
 ===== Implementation Details ===== ===== Implementation Details =====
  
-  * Deleting an issue must delete all associated votes. +  * Deleting an issue must delete all associated votes. ​(DONE) 
-  * Deleting a user must delete all associated votes, no update for last_update of the issues. +  * Deleting a user must delete all associated votes, no update for last_update of the issues. ​(DONE) 
-  * Implement core/​vote_api.php +  * Implement core/​vote_api.php  
-    * vote_add( $p_issue_id,​ $p_weight, $p_user_id = null ) +    * vote_add( $p_issue_id,​ $p_weight, $p_user_id = null ) (DONE
-    * vote_delete_issue_votes( $p_issue_id ); +    * vote_delete_issue_votes( $p_issue_id ); (DONE) ​ 
-    * vote_delete_user_votes( $p_user_id ); +    * vote_delete_user_votes( $p_user_id ); (DONE) 
-    * vote_get_issue_votes( $p_issue_id ) - returns an array of user ids, weight. +    * vote_get_issue_votes( $p_issue_id ) - returns an array of user ids, weight. ​(DONE) 
-    * vote_is_enabled( $p_project_id = ALL_PROJECTS ) +    * vote_is_enabled( $p_project_id = ALL_PROJECTS ​)  (DONE
-    * vote_can_vote( $p_issue_id,​ $p_user_id = null ) +    * vote_can_vote( $p_issue_id,​ $p_user_id = null )  (DONE
-    * vote_can_view_vote_details( $p_issue_id,​ $p_user_id = null ) +    * vote_can_view_vote_details( $p_issue_id,​ $p_user_id = null )  (DONE
-  * Deleting an issue should delete all associated votes. +  * Deleting an issue should delete all associated votes. ​(DUPE) 
-  * Deleting a user should delete all associated votes.+  * Deleting a user should delete all associated votes. ​(DUPE)
  
 ===== View Issues, CSV, Print Issues ===== ===== View Issues, CSV, Print Issues =====
  
-Add support to the View Issues, CSV export and Print Issues page to be able to include the following columns:+Add support to the View Issues, CSV export and Print Issues page to be able to include the following columns: ​ ​(DONE)
  
     * votes_balance     * votes_balance
     * votes_positive     * votes_positive
     * votes_negative     * votes_negative
 +
 +===== Filter =====
 +
 +  * Users should be able to filter on issues they have voted on (similar to issues that have monitored). (DONE)
 +
 +===== Email Notifications =====
 +
 +  * Similar to the way email notifications can be customized for issue notes authors, it should be possible to configure email notifications for voters.
  
 ===== Related Links ===== ===== Related Links =====
Line 69: Line 79:
 ===== Future Ideas ===== ===== Future Ideas =====
  
 +  * Ability to vote on issue notes - This may mean that we should have a generic mantis_votes_table and include a type and id, rather than having a mantis_bug_votes_table and just having an id.
   * Limit the amount of votes users have   * Limit the amount of votes users have
     * Users regularly get granted credits to use for voting.     * Users regularly get granted credits to use for voting.
     * Users get granted credits to use for voting based on certain actions (e.g. submitting an issue, adding a note, etc).     * Users get granted credits to use for voting based on certain actions (e.g. submitting an issue, adding a note, etc).
 +
     * Users buy credits to vote.     * Users buy credits to vote.
     * Users get assigned credits manually by users above certain level.     * Users get assigned credits manually by users above certain level.
Line 95: Line 107:
  
 > 2008-02-20 CADbloke: - Reading that back is giving me a headache. I think my predilection for over complication got the better of me there. I'd be happy with 1-vote means I want it, no votes means indifference - just like any democracy. ​ > 2008-02-20 CADbloke: - Reading that back is giving me a headache. I think my predilection for over complication got the better of me there. I'd be happy with 1-vote means I want it, no votes means indifference - just like any democracy. ​
 +
 +2008-03-01 Cornchips - I'm working on this feature now, and will work towards getting a version running that includes everything on this page except the future ideas. I'm about 40% of the way through making this feature, and will pickup the work again next weekend.
 +
 +2008-03-15 Cornchips - Getting close to feature complete, Havn't looked at the filter or email notifications yet - but should get to them tomorrow. Most code is documented according to mantis standards however I will go back through the code and review this.
 +
 +2008-03-16 Cornchips - Got really bogged down in the filter api today going around in circles trying to find why the filter selection is being stripped out. Have posted to dev mailing list for assistance.
 +
 +2008-03-30 Cornchips - Life has been keeping me busy but managed to debug and complete the filtering system. view_all_set.php had been tripping me up before. Currently aiming to submit my patch for this feature on or before april 6th.
 +
 +2008-04-06 Cornchips - I've just added my patch for svn r5156 (available at http://​www.mantisbt.org/​bugs/​view.php?​id=668 ). However i still need to cleanup the code  to match the mantis coding guidelines. All basic features are complete, and there is also a credit system based on user access level. I would also still like to add a 'my votes' view similar to the my sponsors view, as well as a brainstorming view like the facebook/​uservoice/​ubuntu examples mentioned above. So, consider this an '​alpha'​ version if you like. I should have further time this week to complete the features mentioned above.
 +
mantisbt/issue_voting_requirements.1203468417.txt.gz · Last modified: 2008/10/29 04:32 (external edit)