Merge lp:~aaronp/software-center/fix-794060-oneiric into lp:software-center

Proposed by Aaron Peachey
Status: Merged
Merged at revision: 1856
Proposed branch: lp:~aaronp/software-center/fix-794060-oneiric
Merge into: lp:software-center
Diff against target: 158 lines (+57/-12)
5 files modified
debian/changelog (+8/-1)
softwarecenter/backend/reviews.py (+3/-3)
softwarecenter/ui/gtk/appdetailsview_gtk.py (+16/-3)
softwarecenter/ui/gtk/widgets/reviews.py (+29/-4)
utils/submit_review.py (+1/-1)
To merge this branch: bzr merge lp:~aaronp/software-center/fix-794060-oneiric
Reviewer Review Type Date Requested Status
software-store-developers Pending
Review via email: mp+65118@code.launchpad.net

Description of the change

same as v4.0 fix for bug lp: #794060, written for trunk

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/changelog'
--- debian/changelog 2011-06-17 22:17:12 +0000
+++ debian/changelog 2011-06-19 10:48:35 +0000
@@ -37,7 +37,14 @@
37 - use "normalize_package_description()" here for the description37 - use "normalize_package_description()" here for the description
38 building38 building
3939
40 -- Gary Lasker <gary.lasker@canonical.com> Fri, 17 Jun 2011 18:15:52 -040040 [ Aaron Peachey ]
41 * softwarecenter/backend/reviews.py,
42 softwarecenter/ui/gtk/appdetailsview_gtk.py,
43 softwarecenter/ui/gtk/widgets/reviews.py:
44 - fix duplication of reviews after user has submitted
45 usefulness, flagged or submitted a review (LP: #794060)
46
47 -- Aaron Peachey <alpeachey@gmail.com> Sun, 19 Jun 2011 20:41:40 +1000
4148
42software-center (4.1.5) oneiric; urgency=low49software-center (4.1.5) oneiric; urgency=low
4350
4451
=== modified file 'softwarecenter/backend/reviews.py'
--- softwarecenter/backend/reviews.py 2011-06-01 08:04:32 +0000
+++ softwarecenter/backend/reviews.py 2011-06-19 10:48:35 +0000
@@ -366,7 +366,7 @@
366 if str(review.id) == str(review_id):366 if str(review.id) == str(review_id):
367 # remove the one we don't want to see anymore367 # remove the one we don't want to see anymore
368 self._reviews[app].remove(review)368 self._reviews[app].remove(review)
369 callback(app, self._reviews[app])369 callback(app, self._reviews[app], None, 'remove', review)
370 break370 break
371371
372 def _on_submit_usefulness_finished(self, pid, status, (review_id, is_useful, stdout_fd, callback)):372 def _on_submit_usefulness_finished(self, pid, status, (review_id, is_useful, stdout_fd, callback)):
@@ -389,7 +389,7 @@
389 review.usefulness_total = getattr(review, "usefulness_total", 0) + 1389 review.usefulness_total = getattr(review, "usefulness_total", 0) + 1
390 if is_useful:390 if is_useful:
391 review.usefulness_favorable = getattr(review, "usefulness_favorable", 0) + 1391 review.usefulness_favorable = getattr(review, "usefulness_favorable", 0) + 1
392 callback(app, self._reviews[app], useful_votes)392 callback(app, self._reviews[app], useful_votes, 'replace', review)
393 break393 break
394 else:394 else:
395 LOG.debug("submit usefulness id=%s failed with exitcode %s" % (395 LOG.debug("submit usefulness id=%s failed with exitcode %s" % (
@@ -398,7 +398,7 @@
398 for review in reviews:398 for review in reviews:
399 if str(review.id) == str(review_id):399 if str(review.id) == str(review_id):
400 review.usefulness_submit_error = exitcode400 review.usefulness_submit_error = exitcode
401 callback(app, self._reviews[app])401 callback(app, self._reviews[app], None, 'replace', review)
402 break402 break
403403
404404
405405
=== modified file 'softwarecenter/ui/gtk/appdetailsview_gtk.py'
--- softwarecenter/ui/gtk/appdetailsview_gtk.py 2011-06-17 14:55:07 +0000
+++ softwarecenter/ui/gtk/appdetailsview_gtk.py 2011-06-19 10:48:35 +0000
@@ -805,6 +805,13 @@
805 self.app, self._reviews_ready_callback, 805 self.app, self._reviews_ready_callback,
806 page=self._reviews_server_page,806 page=self._reviews_server_page,
807 language=self._reviews_server_language)807 language=self._reviews_server_language)
808
809 def _review_update_single(self, action, review):
810 if action == 'replace':
811 self.reviews.replace_review(review)
812 elif action == 'remove':
813 self.reviews.remove_review(review)
814 return
808815
809 def _update_review_stats_widget(self, stats):816 def _update_review_stats_widget(self, stats):
810 if stats:817 if stats:
@@ -817,7 +824,8 @@
817 else:824 else:
818 self.review_stats_widget.hide()825 self.review_stats_widget.hide()
819826
820 def _reviews_ready_callback(self, app, reviews_data, my_votes=None):827 def _reviews_ready_callback(self, app, reviews_data, my_votes=None,
828 action=None, single_review=None):
821 """ callback when new reviews are ready, cleans out the829 """ callback when new reviews are ready, cleans out the
822 old ones830 old ones
823 """831 """
@@ -850,8 +858,13 @@
850 if my_votes:858 if my_votes:
851 self.reviews.update_useful_votes(my_votes)859 self.reviews.update_useful_votes(my_votes)
852 860
853 for review in reviews_data:861 if action:
854 self.reviews.add_review(review)862 self._review_update_single(action, single_review)
863 else:
864 curr_list = self.reviews.get_all_review_ids()
865 for review in reviews_data:
866 if not review.id in curr_list:
867 self.reviews.add_review(review)
855 self.reviews.configure_reviews_ui()868 self.reviews.configure_reviews_ui()
856869
857 def on_weblive_progress(self, weblive, progress):870 def on_weblive_progress(self, weblive, progress):
858871
=== modified file 'softwarecenter/ui/gtk/widgets/reviews.py'
--- softwarecenter/ui/gtk/widgets/reviews.py 2011-06-05 22:50:04 +0000
+++ softwarecenter/ui/gtk/widgets/reviews.py 2011-06-19 10:48:35 +0000
@@ -869,10 +869,13 @@
869 button.show()869 button.show()
870 self.vbox.pack_start(button) 870 self.vbox.pack_start(button)
871871
872 # only show the "More" button if there is a chance that there872 # aaronp: removed check to see if the length of reviews is divisible by
873 # are more873 # the batch size to allow proper fixing of LP: #794060 as when a review
874 if self.reviews and len(self.reviews) % REVIEWS_BATCH_PAGE_SIZE == 0:874 # is submitted and appears in the list, the pagination will break this
875 button = gtk.Button(_("Show more reviews"))875 # check and make it unreliable
876 # if self.reviews and len(self.reviews) % REVIEWS_BATCH_PAGE_SIZE == 0:
877 if self.reviews:
878 button = gtk.Button(_("Check for more reviews"))
876 button.connect("clicked", self._on_more_reviews_clicked)879 button.connect("clicked", self._on_more_reviews_clicked)
877 button.show()880 button.show()
878 self.vbox.pack_start(button) 881 self.vbox.pack_start(button)
@@ -891,6 +894,28 @@
891 def add_review(self, review):894 def add_review(self, review):
892 self.reviews.append(review)895 self.reviews.append(review)
893 return896 return
897
898 def replace_review(self, review):
899 for r in self.reviews:
900 if r.id == review.id:
901 pos = self.reviews.index(r)
902 self.reviews.remove(r)
903 self.reviews.insert(pos, review)
904 break
905 return
906
907 def remove_review(self, review):
908 for r in self.reviews:
909 if r.id == review.id:
910 self.reviews.remove(r)
911 break
912 return
913
914 def get_all_review_ids(self):
915 ids = []
916 for review in self.reviews:
917 ids.append(review.id)
918 return ids
894919
895 def clear(self):920 def clear(self):
896 self.reviews = []921 self.reviews = []
897922
=== modified file 'utils/submit_review.py'
--- utils/submit_review.py 2011-06-06 08:49:12 +0000
+++ utils/submit_review.py 2011-06-19 10:48:35 +0000
@@ -606,7 +606,7 @@
606 try:606 try:
607 icon = self.icons.load_icon(iconname, self.APP_ICON_SIZE, 0)607 icon = self.icons.load_icon(iconname, self.APP_ICON_SIZE, 0)
608 except:608 except:
609 icon = self.icons.load_icon(Icons.MISSING_APP_ICON, self.APP_ICON_SIZE, 0)609 icon = self.icons.load_icon(Icons.MISSING_APP, self.APP_ICON_SIZE, 0)
610 self.review_appicon.set_from_pixbuf(icon)610 self.review_appicon.set_from_pixbuf(icon)
611611
612 # title612 # title

Subscribers

People subscribed via source and target branches