From dddc0311c0455d0e4e23e4a9de4f9bd17d5db3b7 Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Wed, 30 Apr 2014 14:07:23 +0000 Subject: [PATCH] VRFS-1577 VRFS-736 session ratings --- db/manifest | 3 ++- db/up/session_ratings.sql | 1 + .../models/music_session_user_history.rb | 13 +++++----- .../music_sessions_user_history_spec.rb | 2 +- .../content/icon_thumbsdown_big_off.png | Bin 0 -> 1212 bytes .../images/content/icon_thumbsdown_big_on.png | Bin 0 -> 1338 bytes .../images/content/icon_thumbsup_big_off.png | Bin 0 -> 1109 bytes .../images/content/icon_thumbsup_big_on.png | Bin 0 -> 1333 bytes web/app/assets/javascripts/session.js | 3 ++- .../stylesheets/client/session.css.scss | 24 +++++++++++++++++- .../api_music_sessions_controller.rb | 7 +++-- web/app/views/clients/_rateSession.html.erb | 18 +++++++++++++ web/spec/requests/music_sessions_api_spec.rb | 2 +- 13 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 db/up/session_ratings.sql create mode 100644 web/app/assets/images/content/icon_thumbsdown_big_off.png create mode 100644 web/app/assets/images/content/icon_thumbsdown_big_on.png create mode 100644 web/app/assets/images/content/icon_thumbsup_big_off.png create mode 100644 web/app/assets/images/content/icon_thumbsup_big_on.png create mode 100644 web/app/views/clients/_rateSession.html.erb diff --git a/db/manifest b/db/manifest index 4d691b123..0b432c342 100755 --- a/db/manifest +++ b/db/manifest @@ -145,4 +145,5 @@ user_progress_tracking2.sql bands_did_session.sql email_change_default_sender.sql affiliate_partners.sql -chat_messages.sql \ No newline at end of file +chat_messages.sql +session_ratings.sql diff --git a/db/up/session_ratings.sql b/db/up/session_ratings.sql new file mode 100644 index 000000000..68223a849 --- /dev/null +++ b/db/up/session_ratings.sql @@ -0,0 +1 @@ +ALTER TABLE music_sessions_user_history ADD COLUMN rating_comment TEXT; diff --git a/ruby/lib/jam_ruby/models/music_session_user_history.rb b/ruby/lib/jam_ruby/models/music_session_user_history.rb index 5939f8bff..8fda4aaf5 100644 --- a/ruby/lib/jam_ruby/models/music_session_user_history.rb +++ b/ruby/lib/jam_ruby/models/music_session_user_history.rb @@ -6,6 +6,7 @@ module JamRuby self.primary_key = 'id' attr_accessible :max_concurrent_connections, :session_removed_at, :rating + validates_inclusion_of :rating, :in => -1..1, :allow_nil => true belongs_to(:user, :class_name => "JamRuby::User", @@ -16,9 +17,6 @@ module JamRuby :class_name => "MusicSessionHistory", :foreign_key => "music_session_id") - validates_inclusion_of :rating, :in => 0..2, :allow_nil => true - after_save :track_user_progression - def music_session_history @msh ||= JamRuby::MusicSessionHistory.find_by_music_session_id(self.music_session_id) end @@ -104,10 +102,13 @@ module JamRuby self.perf_data.try(:uri) end - def track_user_progression - if self.rating == 0 - user.update_progression_field(:first_good_music_session_at) + def add_rating(rval, comment='') + rval = rval.to_i + if 0 != rval + self.rating += rval + self.rating_comment = comment end end + end end diff --git a/ruby/spec/jam_ruby/models/music_sessions_user_history_spec.rb b/ruby/spec/jam_ruby/models/music_sessions_user_history_spec.rb index 3d7713b86..2ae1f6aec 100644 --- a/ruby/spec/jam_ruby/models/music_sessions_user_history_spec.rb +++ b/ruby/spec/jam_ruby/models/music_sessions_user_history_spec.rb @@ -26,7 +26,7 @@ describe MusicSessionUserHistory do describe "out of range" do before(:each) do - user_history1.update_attribute(:rating, 3) + user_history1.update_attribute(:rating, 2) user_history1.save end diff --git a/web/app/assets/images/content/icon_thumbsdown_big_off.png b/web/app/assets/images/content/icon_thumbsdown_big_off.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7e0261b8bcc0874fe7fa599fc3f129a1e192be GIT binary patch literal 1212 zcmV;t1Vj6YP)x7^bgj#rr!c`IQA3$p1C-4kH@D~uR#6{v)AeHv14{vG4^?Guok>&O5+TS;4zBy;cM;aR&gL-3}_x+g79vQ`!EEXq%rkSE^ z;36{_%jbQ**$;{``H!kzd#$Q}tx8h4zMoW200KWcF*kQ!EtR%I4_VglfAv7q&LSCq ztiA3@CX=6-;M_AYKY#A9u3wg`)qdzPBTUjsOBbo=%^E9yhH} zIEW<3v*GZK8Ufp~*PQCBPCv5ZpEi*d#!3^M3CK zW@H(j#^W#>3W0ZZ6}Ti(qGd7d!T0M@QEZfvP#;WHAzUuQPnis5q=4xw+!-3Op7F(a z-MtmYtiBl4bq4_@j|XlK55rtA*w+1vNZy-p7!JLA2YuBlU_QU$J-HV8*hWA)5U^S& zM&9sH)1ZH4rRE{cOzI{Lz;$(<%eHGKy7mGR$=##@GtnqKP9&hr?A2AN8wk)*@UD-H zSVCsE@oty`F9rr20pB%oK)ypIc0B=u#iC;XxRV-C#&v%ZgPwmQ5%D5Hn)9Uklh}mJ z1#*3T@Uq|i#|Lc_u!8PiVb14LjzxljN(B^b!g>H@ZsYIYTbZ7a1n|$z?HdYhuL3VI z`lEbZ*eNjG-x~+WZ4j`FA*$4U)wS!)hBD?f6dPh&GEIf51`S zx3EwH-0C!Nd_SP2+ySRcv-wJ&{EWIn5vJ=lL|RH(&{dnsRRn==%VymZ2ehLZtjT;G zMlG>>^lc@8&I=j|77^2_n!AF4Mu#ROc7wf6fUik#L;DI52i)IQ0tn~1@qSd;=Hvc8INr31Cn2hB_1y5CEtl;y_iAn%rXN$7@OjH8Wit>oP zR@Fa6C4jKASJCKIs<0H${q-5d&PWLErBbIvBj9c-b+Rf+C97_b>gT+i2dSP;1n`rI z#Ba~yajQW8U# z`u3JBC!WOPzkdO5!ERJOPX(2jxgAXy#vUp%#A~klHzaDCNkWH9-D6byYb5sHDxd#P afB^tny0|hndx!b}0000D=#m{bmO6C zR7l?aTj1SZ#Rpaw2r_TxbR?7cG@|#(g50HATrIGE+aX%_Dd5JYe~z0Dpi=gJ_?pSJ zXM-3PkV5u{WR@G$yd!4?YkgDz1iJXFbglK(^y{0E!ge^2+kRZMZ_&U>vXBw2;GkY-f31dQ7#Xts8gii|DyxngxBQPQuafLSg_I&B{UOjYe$TRB?M3C@z6k{SZ11tpN#m zkz=#{?r4XBX$7Ve4hn5^nVbjw zvTYX}^#|Bp0@+X0Ar6dwSCy?-Z!eq-bo7XY4bK3_CZMqnNF`C@Yb zQH)Ozy!Xe?aBigyMNikoG`pKqfNeYobKmdapL%h8fI5+Cr}qBFAjBA?`hRVkp9kp< z%xk35S6l^mNfk768o22-fsrcdol|6JYwt!`Z5_;J^Q_nFZ2lVM@703PYmH^zIqs(P zxgKTkq0vrI3XJm0~{EXb?^ zxT**W`Ato`&MJWOvSpC8!uma{09vSa(k5ot_sW9Gn)p6NP}{}qy~Nl~dO*%U${K(V zr2L~YIA0_UQWAR(2XfD{BHqwyX#Q6na9p%kf8x)%km}+a{W)ER)|eM331hSL+fNSG}HEZV?$*PyxTVNLEBnE=EWr2 wTqV&Wr(YJ7PQ@}vqkXdx?4xa;|3`oU0B!cmL1G%6%m4rY07*qoM6N<$g1)SM%m4rY literal 0 HcmV?d00001 diff --git a/web/app/assets/images/content/icon_thumbsup_big_off.png b/web/app/assets/images/content/icon_thumbsup_big_off.png new file mode 100644 index 0000000000000000000000000000000000000000..00ecd4f005e821f541dfed51e00582fb806ae322 GIT binary patch literal 1109 zcmV-b1giUqP)Vxkj-V)=NfW*ruFg|OHeg&f@8WTT-iRhCrM!$f@#Q4aA5lGRX?RLBEc4sfnnNm`L z7DCIG?r>g!DQx@y?YYc3%izVuMYP)@9O>@3yVMwOEO{C4TBwIJu!cs+aDZzHQ`R*{ z`)ZcW6qqZ7;ie)m142DjRGmwy!F^R zXT1#7uz(U~ps8`DaXTVWirVxOIQoA8Kzwbw_7El9ysUSfL!h)uKfupKxP75kRsdZ4Wx_W( zMOguG?bDD14Osz*B#0!pQvk99P>1>EM%6&HLZJ_V-6&*bc>sX;!fF8#zvYDHmWe9o zD^Q!|2!ZtP^p1GZl`#e7)^p;k6aYHKw@qtk$fy`{0BCjN`-FyVbbT%H9?hLFi-h$=dw|kZkYRPt^a4PXU;t*>6gi-0 zbx3LzfV&SHpq|x{L@>f0jjb@ms)$#--;Ip;a_faqX$i`0~OWzI< z;(+Zr`1J`vYT==&%F&Gui3*IiHcyB1} zJRFHyaSzu3x33jz10R{=i8~V~W2`f*W(rAervOd?$PNGp*p^j1oFXF%Q%cg_eUFrg zR@c7C3P5-C&xDrgTUh~sc4GcDUn`!nE}M9+c>}Z)NCaa)$L`ApfNQ?TwKqi>1QMB2 z=BX^=K`Uq$p3puyN^SZPj+e3wyP9P2>0jwr`L+B5wEO5REKrNS*BaV)mSPu^c77NR zPv?K+?`Ai%&pP{0-0k>09H?~1-DNNBUE*!*EML<`NidIZ#_RkBFLhsdwqF64-|zVR bKLG{+d_bEA4 z;j%R*j=1lW_WD~EYFyPa&shzWl9UC`NK9KZ(zqik4ST+j$6c>OV-mOT$J`FU+7y51 z?x&+&zJ`)l|EMa=shJpk(FJMr?458(CqvdbOU_Tl}X4r0vTL&qb~=6T_!d7{dS0G`b!7H+36=eGJl3+(Al=QhD=gGG0hH-JXRF7SNr=iFkkngE>T3qV|G!uEzo zRxV6TFdT&P1<;b&k5F~Z$~VNYV8E3p09UdRkA@F`Wmmqel2MRiXG^0L=2Ry*-EQW! z9AgTGVg8cWjmp+*+0^&A^_tJxyvmUrV;b2iuaMNguN+lt3_?_2epf*|0j_LtUl{h8Sq&W@bM z58@H%YQqIpWCYfK^)lq8WQJX81{Fse+`P6>kSrCy;n~cCkqr?ilX4d{=>NF?WVH@ zkicr>tP>~!Kq|^T+g{05nAFAqzpoNbwWc@#7^e9AQt2d8+zh=f;M`CT;*K%;vcS~z z@Ay9QB?g2y&3=GFAArHJv*;D`f3qjQQrIY7DI5+ySb75@h16VpnqB~^s$$^p6NM?J z^6Cs>ecvC}bsd){A~-YlE++k77asr_zFa*{7)wTr@=+oY$0wJ&Fy;TIaMfg9M>A^! z@JnO}sZ=WOo3+_&V2#4Q!<}CxxP}%$>h<1f&*zt_}O~`(zjFCS@|rge6`Rt6}p*54FbhHmK;w$ zQk$e&!D7Skl>zjpk3n(I6%+vT;*Th;nGl8UQG#-90N4OPI{-P(Q5ys`g#nwKwPt7q zkcbH?D~;P{Xaz7o>WHz@u;(jU0TAzOIwBs5PYW7t=80!{RD6{s(@Doas_CW;0P$>S z%s<&QC`ZJu(VoyCE#`?=;(19OAoT@yUHUwDvE0p@9!H4R#bvI#`o^R&gV9oBu9I`W zIbA|cdWYSomepKBGI@IRRNe8!g^Inz>&@Qaiqq%A@uQyYQl~GR47x%x&sj>VUeYoQ r5>Y{&k2qq|kmn2u_PM6d|0}=%wELog1W>#700000NkvXXu0mjf {}, :status => :ok end + else + render :json => { :message => ValidationMessages::SESSION_NOT_FOUND }, :status => 404 + end end def track_index diff --git a/web/app/views/clients/_rateSession.html.erb b/web/app/views/clients/_rateSession.html.erb new file mode 100644 index 000000000..adc56146d --- /dev/null +++ b/web/app/views/clients/_rateSession.html.erb @@ -0,0 +1,18 @@ +
+
+ +
+

please rate your session

+
+
+
+       +

+ +

+ SEND FEEDBACK   NOT NOW, THANKS +
+
+ +
+
diff --git a/web/spec/requests/music_sessions_api_spec.rb b/web/spec/requests/music_sessions_api_spec.rb index bc453960d..d0b25948b 100755 --- a/web/spec/requests/music_sessions_api_spec.rb +++ b/web/spec/requests/music_sessions_api_spec.rb @@ -659,7 +659,7 @@ describe "Music Session API ", :type => :api do post "/api/participant_histories/#{msuh.id}/rating.json", { :rating => 0 }.to_json, "CONTENT_TYPE" => "application/json" last_response.status.should == 200 msuh.reload - msuh.rating.should == 0 + msuh.rating.to_i.should == 0 end it "track sync" do