mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2009-03-04 08:13 am

[dw-free] Change data-gathering so that "gender" is only recorded (and recordable) for acc

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

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

Don't show gender option for non-individual accounts.

Patch by [personal profile] exor674.

Files modified:
  • bin/upgrading/en.dat
  • cgi-bin/LJ/Setting/Gender.pm
  • htdocs/manage/profile/index.bml
--------------------------------------------------------------------------------
diff -r 868d07c66bbf -r de55581613d2 bin/upgrading/en.dat
--- a/bin/upgrading/en.dat	Wed Mar 04 08:11:39 2009 +0000
+++ b/bin/upgrading/en.dat	Wed Mar 04 08:12:59 2009 +0000
@@ -2615,6 +2615,8 @@ setting.entryeditor.option.richtext=Rich
 
 setting.gender.error.invalid=Invalid option
 
+setting.gender.error.wrongtype=Only personal or identity journals can have a gender.
+
 setting.gender.question=What's your gender?
 
 setting.graphicpreviews.label=Graphic Previews
diff -r 868d07c66bbf -r de55581613d2 cgi-bin/LJ/Setting/Gender.pm
--- a/cgi-bin/LJ/Setting/Gender.pm	Wed Mar 04 08:11:39 2009 +0000
+++ b/cgi-bin/LJ/Setting/Gender.pm	Wed Mar 04 08:12:59 2009 +0000
@@ -3,41 +3,48 @@ use strict;
 use strict;
 use warnings;
 
-sub tags { qw(gender sex male female boy girl other) }
+sub tags { qw( gender sex male female boy girl other ) }
 
 sub as_html {
-    my ($class, $u, $errs, $args) = @_;
+    my ( $class, $u, $errs, $args ) = @_;
     my $key = $class->pkgkey;
 
     # show the one just posted, else the default one.
-    my $gender = $class->get_arg($args, "gender") ||
-        $u->prop("gender");
+    my $gender = $class->get_arg( $args, "gender" ) ||
+        $u->prop( "gender" );
 
-    return "<label for='${key}gender'>" . $class->ml('.setting.gender.question') . "</label>" .
+    return "<label for='${key}gender'>" . $class->ml( '.setting.gender.question' ) . "</label>" .
         LJ::html_select({ 'name' => "${key}gender", 'id' => '${key}gender', 'class' => 'select', 'selected' => $gender || 'U' },
-                        'F' => LJ::Lang::ml('/manage/profile/index.bml.gender.female'),
-                        'M' => LJ::Lang::ml('/manage/profile/index.bml.gender.male'),
-                        'O' => LJ::Lang::ml('/manage/profile/index.bml.gender.other'),
-                        'U' => LJ::Lang::ml('/manage/profile/index.bml.gender.unspecified') ) .
-                        $class->errdiv($errs, "gender");
+                        'F' => $class->ml( '/manage/profile/index.bml.gender.female' ),
+                        'M' => $class->ml( '/manage/profile/index.bml.gender.male' ),
+                        'O' => $class->ml( '/manage/profile/index.bml.gender.other' ),
+                        'U' => $class->ml( '/manage/profile/index.bml.gender.unspecified' ) ) .
+                        $class->errdiv( $errs, "gender" );
+}
+
+sub should_render {
+    my ( $class, $u ) = @_;
+
+    return $u->is_individual;
 }
 
 sub error_check {
-    my ($class, $u, $args) = @_;
-    my $val = $class->get_arg($args, "gender");
-    $class->errors("gender" => $class->ml('.setting.gender.error.invalid')) unless $val =~ /^[UMFO]$/;
+    my ( $class, $u, $args ) = @_;
+    my $val = $class->get_arg( $args, "gender" );
+    $class->errors( access => $class->ml( '.setting.gender.error.wrongtype' ) ) if $u->is_individual;
+    $class->errors( gender => $class->ml( '.setting.gender.error.invalid' ) ) unless $val =~ /^[UMFO]$/;
     return 1;
 }
 
 sub save {
-    my ($class, $u, $args) = @_;
-    $class->error_check($u, $args);
+    my ( $class, $u, $args ) = @_;
+    $class->error_check( $u, $args );
 
-    my $gen = $class->get_arg($args, "gender");
-    return 1 if $gen eq ($u->prop('gender') || "U");
+    my $gen = $class->get_arg( $args, "gender" );
+    return 1 if $gen eq ( $u->prop( 'gender' ) || "U" );
 
     $gen = "" if $gen eq "U";
-    $u->set_prop("gender", $gen);
+    $u->set_prop( "gender", $gen );
     $u->invalidate_directory_record;
 }
 
diff -r 868d07c66bbf -r de55581613d2 htdocs/manage/profile/index.bml
--- a/htdocs/manage/profile/index.bml	Wed Mar 04 08:11:39 2009 +0000
+++ b/htdocs/manage/profile/index.bml	Wed Mar 04 08:12:59 2009 +0000
@@ -148,15 +148,16 @@ body<=
             $ret .= "<?inerr " . BML::ml('.error.invalidname2', {'aopts' => "href='$LJ::SITEROOT/utf8convert.bml'"}) . " inerr?></td></tr>\n";
         }
 
-        # gender
-        $ret .= "<tr><td class='field_name'>$ML{'.fn.gender'}</td><td>";
-        $ret .= LJ::html_select({ 'name' => 'gender', 'selected' => $u->{'gender'} || 'U' },
-                                  'F' => $ML{'.gender.female'},
-                                  'M' => $ML{'.gender.male'},
-                                  'O' => $ML{'.gender.other'},
-                                  'U' => $ML{'.gender.unspecified'}, );
-        $ret .= "</td></tr>\n";
-
+        if ( $u->is_individual ) {
+            # gender
+            $ret .= "<tr><td class='field_name'>$ML{'.fn.gender'}</td><td>";
+            $ret .= LJ::html_select({ name => 'gender', selected => $u->prop( 'gender' ) || 'U' },
+                                      F => $ML{'.gender.female'},
+                                      M => $ML{'.gender.male'},
+                                      O => $ML{'.gender.other'},
+                                      U => $ML{'.gender.unspecified'}, );
+            $ret .= "</td></tr>\n";
+        }
 
         # birthday
         $ret .= "<tr><td class='field_name'>$ML{'.fn.birthday'}</td><td>";
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
No Subject Icon Selected
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org