afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-05-31 05:05 pm

[dw-free] Option to exclude your own visits from your google analytics.

[commit: http://hg.dwscoalition.org/dw-free/rev/3969f1cbd58a]

http://bugs.dwscoalition.org/show_bug.cgi?id=1186

New setting.

Patch by [personal profile] exor674.

Files modified:
  • bin/upgrading/en.dat
  • bin/upgrading/proplists.dat
  • cgi-bin/LJ/PageStats.pm
  • cgi-bin/LJ/User.pm
  • htdocs/manage/settings/index.bml
--------------------------------------------------------------------------------
diff -r ce46cffd561b -r 3969f1cbd58a bin/upgrading/en.dat
--- a/bin/upgrading/en.dat	Fri May 29 17:47:10 2009 +0000
+++ b/bin/upgrading/en.dat	Sun May 31 17:04:34 2009 +0000
@@ -2681,6 +2681,10 @@ setting.entryeditor.option.plaintext=HTM
 
 setting.entryeditor.option.richtext=Rich Text
 
+setting.excludeownstats.label=Journal Statistics
+
+setting.excludeownstats.option=Do not include me in my own statistics
+
 setting.gender.error.invalid=Invalid option
 
 setting.gender.error.wrongtype=Only personal or identity journals can have a gender.
diff -r ce46cffd561b -r 3969f1cbd58a bin/upgrading/proplists.dat
--- a/bin/upgrading/proplists.dat	Fri May 29 17:47:10 2009 +0000
+++ b/bin/upgrading/proplists.dat	Sun May 31 17:04:34 2009 +0000
@@ -269,6 +269,14 @@ userproplist.esn_inbox_default_expand:
   indexed: 0
   multihomed: 0
   prettyname: Default ESN inbox expanded state
+
+userproplist.exclude_from_own_stats:
+  cldversion: 4
+  datatype: bool
+  des: Exclude yourself from your own journal stats
+  indexed: 0
+  multihomed: 0
+  prettyname: Exclude from self journal stats
 
 userproplist.external_foaf_url:
   cldversion: 4
diff -r ce46cffd561b -r 3969f1cbd58a cgi-bin/LJ/PageStats.pm
--- a/cgi-bin/LJ/PageStats.pm	Fri May 29 17:47:10 2009 +0000
+++ b/cgi-bin/LJ/PageStats.pm	Sun May 31 17:04:34 2009 +0000
@@ -53,6 +53,13 @@ sub should_do_pagestats {
     my $u = $self->get_user;
 
     return 0 if $u && $u->prop('opt_exclude_stats');
+
+    my $ctx = $self->get_context;
+
+    if ( $ctx && $ctx eq 'journal' ) {
+        return 0 if $u && $u->exclude_from_own_stats && $u->equals( LJ::get_active_journal() );
+    }
+
     return 1;
 }
 
diff -r ce46cffd561b -r 3969f1cbd58a cgi-bin/LJ/User.pm
--- a/cgi-bin/LJ/User.pm	Fri May 29 17:47:10 2009 +0000
+++ b/cgi-bin/LJ/User.pm	Sun May 31 17:04:34 2009 +0000
@@ -1792,6 +1792,10 @@ sub can_use_google_analytics {
     return $_[0]->get_cap( 'google_analytics' ) ? 1 : 0;
 }
 
+# Check if the user can use *any* page statistic module for their own journal.
+sub can_use_page_statistics {
+    return $_[0]->can_use_google_analytics;
+}
 
 # <LJFUNC>
 # name: LJ::User::caps_icon
@@ -1832,17 +1836,26 @@ sub control_strip_display {
 
 # returns the country specified by the user
 sub country {
-    my $u = shift;
-    return $u->prop('country');
-}
-
+    return $_[0]->prop( 'country' );
+}
+
+sub exclude_from_own_stats {
+    my $u = shift;
+
+    if ( defined $_[0] && $_[0] =~ /[01]/ ) {
+        $u->set_prop( exclude_from_own_stats => $_[0] );
+        return $_[0];
+    }
+
+    return $u->prop( 'exclude_from_own_stats' ) eq "1" ? 1 : 0;
+}
 
 # returns the max capability ($cname) for all the classes
 # the user is a member of
 sub get_cap {
-    my ($u, $cname) = @_;
+    my ( $u, $cname ) = @_;
     return 1 if $LJ::T_HAS_ALL_CAPS;
-    return LJ::get_cap($u, $cname);
+    return LJ::get_cap( $u, $cname );
 }
 
 
diff -r ce46cffd561b -r 3969f1cbd58a htdocs/manage/settings/index.bml
--- a/htdocs/manage/settings/index.bml	Fri May 29 17:47:10 2009 +0000
+++ b/htdocs/manage/settings/index.bml	Sun May 31 17:04:34 2009 +0000
@@ -69,6 +69,7 @@ body<=
                 LJ::Setting::ViewingAdultContent
                 LJ::Setting::SafeSearch
                 DW::Setting::GoogleAnalytics
+                DW::Setting::ExcludeOwnStats
             )],
         },
         notifications => {
--------------------------------------------------------------------------------