Changeset 1026

Show
Ignore:
Timestamp:
09/05/08 00:17:03 (3 months ago)
Author:
mpaschal
Message:

Invoke conversion as upgrade steps
BugzID: 80822 81840

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/LinkedEntryCustomFields/plugins/LinkedEntryCustomFields/config.yaml

    r895 r1026  
    66author_link: http://www.sixapart.com/ 
    77version: 1.0 
     8 
     9schema_version: 1 
    810 
    911applications: 
     
    1618            template_param.list_field: $LinkedEntryCustomFields::LinkedEntryCustomFields::App::inject_field_list_page_actions 
    1719            cms_pre_save.field: $LinkedEntryCustomFields::LinkedEntryCustomFields::App::presave_field 
    18         page_actions: 
    19             list_field: 
    20                 convert_rf2cf: 
    21                     label:      Convert RightFields to Custom Fields 
    22                     order:      900 
    23                     condition:  sub { !MT->app->blog } 
    24                     handler:    $LinkedEntryCustomFields::LinkedEntryCustomFields::Convert::convert_rf2cf 
    25                     permission: sys_admin 
    2620customfield_types: 
    2721    entry: 
     
    3327        no_default: 1 
    3428tags: $LinkedEntryCustomFields::LinkedEntryCustomFields::App::load_customfield_tags 
     29upgrade_functions: 
     30    rf2cf_convert_fields: 
     31        handler: $LinkedEntryCustomFields::LinkedEntryCustomFields::Convert::step_convert_fields 
     32    rf2cf_convert_data: 
     33        version_limit: 0 
     34        handler: $LinkedEntryCustomFields::LinkedEntryCustomFields::Convert::step_convert_data 
  • trunk/LinkedEntryCustomFields/plugins/LinkedEntryCustomFields/lib/LinkedEntryCustomFields/Convert.pm

    r1024 r1026  
    155155 
    156156sub _copy_asset_custom_fields_from_file { 
    157     my %param = @_; 
     157    my ($self, %param) = @_; 
    158158    my ($blog_id, $field_id, $field_data, $datasource) = @param{qw( blog_id field_id data datasource )}; 
    159159    MT->log("Copying values of file RF $field_id to an asset CF") if DEBUG(); 
     160 
     161    $self->progress($self->translate_escape('Converting data for file field "[_1]" to asset custom fields data...', $param{field_id})); 
    160162 
    161163    my $iter; 
     
    241243    } 
    242244 
    243     return 1
     245    return 0
    244246} 
    245247 
    246248sub _copy_custom_field_data_from_pseudofields { 
    247     my %param = @_; 
     249    my ($self, %param) = @_; 
    248250    my ($blog_id, $field_id, $field_data, $datasource) = @param{qw( blog_id field_id data datasource )}; 
    249251    my $field_type = $field_data->{type}; 
     252 
     253    $self->progress($self->translate_escape('Converting data for field "[_1]" from plugindata to custom fields data...', $param{field_id})); 
    250254 
    251255    my $data_iter = MT->model('plugindata')->load_iter({ plugin => 'RightFieldsPseudo' }); 
     
    276280    } 
    277281 
    278     return 1
     282    return 0
    279283} 
    280284 
     
    307311} 
    308312 
    309 sub _copy_custom_field_data { 
    310     my %param = @_; 
     313sub step_convert_data { 
     314    my ($self, %param) = @_; 
     315    return 0 if !%param;  # nothing to convert? 
    311316    my ($blog_id, $field_id, $field_data, $datasource) = @param{qw( blog_id field_id data datasource )}; 
    312317    my $field_type = $field_data->{type}; 
    313318 
    314     return _copy_asset_custom_fields_from_file(%param) 
     319    return _copy_asset_custom_fields_from_file($self, %param) 
    315320        if $field_type eq 'file'; 
    316321    # TODO: if this is a choice field, convert keys of key=value choice pairs 
    317322    # into values... by converting them loopily. or something. 
    318     return _copy_custom_field_data_from_pseudofields(%param) 
     323    return _copy_custom_field_data_from_pseudofields($self, %param) 
    319324        if $datasource eq '_pseudo'; 
     325 
     326    $self->progress($self->translate_escape('Converting data for field "[_1]" to custom fields data...', $param{field_id})); 
    320327 
    321328    my $rf_pkg = _make_rightfields_table_pkg(%param); 
     
    353360    $dbh->do($insert_sql, {}, "field.$field_id") 
    354361        or die $dbh->errstr || $DBI::errstr; 
    355 
    356  
    357 sub convert_rf2cf { 
    358     my $app = shift; 
     362 
     363    return 0; 
     364
     365 
     366sub step_convert_fields { 
     367    my ($self, %param) = @_; 
    359368 
    360369    # Look for RF field definitions. 
    361370    my $def_iter = MT->model('plugindata')->load_iter({ plugin => 'rightfields' }); 
     371 
     372    $self->progress($self->translate_escape('Discovering RightFields settings...')); 
    362373 
    363374    my (@tags, @fields); 
     
    369380    } 
    370381 
     382    $self->progress($self->translate_escape('Cataloguing RightFields tags...')); 
     383 
    371384    my %tags_for_fields; 
    372385    TAG: for my $tag_def (@tags) { 
     
    384397        } 
    385398    } 
     399 
     400    $self->progress($self->translate_escape('Cataloguing RightFields fields...')); 
    386401 
    387402    my (%fields_for_blog, %fields_by_id, %datasource_for_blog); 
     
    409424        } 
    410425    } 
     426 
     427    $self->progress($self->translate_escape('Converting RightFields fields to custom fields...')); 
    411428 
    412429    # Upgrade duplicates to global fields. 
     
    463480 
    464481    # Make corresponding custom fields. 
    465     my $fields_converted = 0; 
    466482    while (my ($blog_id, $fields) = each %fields_for_blog) { 
    467483        my $datasource = $datasource_for_blog{$blog_id}; 
    468484        while (my ($field_id, $field_data) = each %$fields) { 
    469             $fields_converted++; 
    470             _copy_custom_field_data( 
     485            $self->add_step('rf2cf_convert_data', 
    471486                blog_id    => $blog_id, 
    472487                field_id   => $field_id, 
     
    477492    } 
    478493 
    479     $app->add_return_arg( converted => $fields_converted ); 
    480     return $app->call_return(); 
     494    return 0;  # done 
    481495} 
    482496