[dw-free] Enhancements to "find users with similar interests"
[commit: http://hg.dwscoalition.org/dw-free/rev/7acf6200abb8]
http://bugs.dwscoalition.org/show_bug.cgi?id=2018
Split up results by journal type.
Patch by
kareila.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2018
Split up results by journal type.
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- cgi-bin/DW/Controller/Search/Interests.pm
- views/interests/findsim.tt
- views/interests/findsim.tt.text
-------------------------------------------------------------------------------- diff -r a3e03737f6ff -r 7acf6200abb8 cgi-bin/DW/Controller/Search/Interests.pm --- a/cgi-bin/DW/Controller/Search/Interests.pm Tue Feb 08 20:51:49 2011 +0800 +++ b/cgi-bin/DW/Controller/Search/Interests.pm Tue Feb 08 20:54:56 2011 +0800 @@ -167,25 +167,29 @@ sub interest_handler { my $users = LJ::load_userids( @matches ); my $nocircle = $remote && $args->{nocircle}; - my $count = 1; - my $data = []; + my $count = { P => 0, C => 0, I => 0 }; + my $data = { P => [], C => [], I => [] }; foreach my $uid ( @matches ) { my $match_u = $users->{$uid}; next unless $match_u && $match_u->is_visible; if ( $nocircle ) { next if $remote->watches( $match_u ); - next if $remote->trusts( $match_u ); + next if $match_u->is_person && $remote->trusts( $match_u ); + next if $match_u->is_comm && $remote->member_of( $match_u ); } - push @$data, { count => $count++, - user => $match_u->ljuser_display, - magic => sprintf( "%.3f", $magic{$uid} ) }; + my $j = $match_u->journaltype; + push @{ $data->{$j} }, + { count => ++$count->{$j}, + user => $match_u->ljuser_display, + magic => sprintf( "%.3f", $magic{$uid} ) }; } return error_ml( 'interests.findsim_do.nomatch', { user => $u->ljuser_display } ) - unless @$data; + unless grep { $_ } values %$count; $rv->{findsim_u} = $u; + $rv->{findsim_count} = $count; $rv->{findsim_data} = $data; $rv->{nocircle} = $nocircle; $rv->{circle_link} = diff -r a3e03737f6ff -r 7acf6200abb8 views/interests/findsim.tt --- a/views/interests/findsim.tt Tue Feb 08 20:51:49 2011 +0800 +++ b/views/interests/findsim.tt Tue Feb 08 20:54:56 2011 +0800 @@ -13,8 +13,7 @@ [%- sections.head = BLOCK %] <style type='text/css'> - div.tagcloud a { text-decoration: none; } - ul.contentlist li { padding-bottom: 3px; } + .accountlist { padding-bottom: 3em; } </style> [% END -%] @@ -33,18 +32,60 @@ </p> [%- END -%] <p>[% '.text' | ml(user = findsim_u.ljuser_display) %]</p> -<p><table cellpadding='3'><thead><tr valign='bottom'> + +[%- IF findsim_count.P -%] +<div class="accountlist"> +<h2>[% '.accounts.person' | ml %]</h2> +<table cellpadding='3'><thead><tr valign='bottom'> <th>#</th> <th width='250'>[% 'username' | ml %]</th> <th>[% '.findsim_do.magic' | ml %]</th> </tr></thead> -[%- FOREACH findsim_data -%] +[%- FOREACH findsim_data.P -%] <tr> <td>[% count %]</td> <td>[% user %]</td> <td>[% magic %]</td> </tr> [%- END -%] -</table></p> +</table></div> +[%- END -%] + +[%- IF findsim_count.C -%] +<div class="accountlist"> +<h2>[% '.accounts.comm' | ml %]</h2> +<table cellpadding='3'><thead><tr valign='bottom'> + <th>#</th> + <th width='250'>[% 'username' | ml %]</th> + <th>[% '.findsim_do.magic' | ml %]</th> +</tr></thead> +[%- FOREACH findsim_data.C -%] + <tr> + <td>[% count %]</td> + <td>[% user %]</td> + <td>[% magic %]</td> + </tr> +[%- END -%] +</table></div> +[%- END -%] + +[%- IF findsim_count.I -%] +<div class="accountlist"> +<h2>[% '.accounts.id' | ml %]</h2> +<table cellpadding='3'><thead><tr valign='bottom'> + <th>#</th> + <th width='250'>[% 'username' | ml %]</th> + <th>[% '.findsim_do.magic' | ml %]</th> +</tr></thead> +[%- FOREACH findsim_data.I -%] + <tr> + <td>[% count %]</td> + <td>[% user %]</td> + <td>[% magic %]</td> + </tr> +[%- END -%] +</table></div> +[%- END -%] + <h1>[% '.findsim_do.magic.head' | ml %]</h1> <p> [% '.findsim_do.magic.text' | ml %]</p> diff -r a3e03737f6ff -r 7acf6200abb8 views/interests/findsim.tt.text --- a/views/interests/findsim.tt.text Tue Feb 08 20:51:49 2011 +0800 +++ b/views/interests/findsim.tt.text Tue Feb 08 20:54:56 2011 +0800 @@ -1,4 +1,10 @@ ;; -*- coding: utf-8 -*- +.accounts.comm=Community Accounts + +.accounts.id=OpenID Accounts + +.accounts.person=Personal Accounts + .circle.exclude=This listing includes accounts you already subscribe to. <a href="[[aopts]]">Exclude users in your circle?</a> .circle.include=This listing does not include accounts in your circle. <a href="[[aopts]]">Include them?</a> --------------------------------------------------------------------------------