[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
exor674.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=20
Don't show gender option for non-individual accounts.
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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>"; --------------------------------------------------------------------------------