[EP-tech] Out of sync? Changed type of a custom field: Adding field column now renders review table of some users empty

Florian Heß hess at ub.uni-heidelberg.de
Wed Mar 7 16:13:48 GMT 2012


Hi. :-)

Our custom field "wer" in eprint dataset signifies the editor who 
declared their sole further responsibility in the workflow of a 
particular item. It is hidden by show_in_fieldlist => 0 in 
cfg.d/eprint_fields.pl to meet institutional privacy rules. (btw: Wish I 
could set show_in_fieldlist => 'staff' or so ...)

Recently, in order to make the equivalence match on that field work, I 
changed the type of the field from TEXT to ID. The field serves as one 
of two OR'ed editorial scope restriction criteria [cf. earlier post].

Since then and after reloading configuration, updating the database and 
restarting the webserver, however, admin and some few editors who have 
an unrestricted editorial scope (but there might be more, I am not sure) 
do not see any items.

Reloading config as well as restarting Apache once more did not solve 
the problem, neither did a `bin/epadmin recommit $repo user $admin_id`. 
The indexer ticks well and reindexing did not brought me any further.

The problem does *not appear* when using the API:

eprints:~$ perl -I ~/perl_lib/ -MEPrints
    print EPrints->new->repository( "REPO_ID" )
        ->user_by_username( "admin" )
        ->editable_eprints_list(
           filters => [{
             meta_fields => [qw|eprint_status|],
             value => "buffer"
           }]
          )->count
         , " items should be listed for review.\n"'
         ;
67 items should be listed for review.

These 67 records *are* displayed in the web interface when admin removes 
the "wer" column in the review table.
When I reset the user's review_fields setting by EPrints API to the 
default as defined in cfg.d/user_fields_default.pl ...

eprints:~$ perl -I ~/perl_lib/ -MEPrints
     $repo = EPrints->new->repository("REPO_ID");
     $user = $repo->user_by_username("admin");
     $user->set_value(
       review_fields => [
         "status_changed", "creators_name", "title",
         "type", "userid", "wer"
       ]
     );
     $user->commit;

Et voilà: Review table is empty, without last "wer" array element again 
it is filled.

After all, this looks like a problem with some cached data left 
unrefreshed. My question then is what to reset or drop manually?

As a last resort I can simply create a new user account. That would do 
even with above default setting, a test was successful, but that is not 
a proper solution. I would prefer to understand what is going wrong and 
maybe you like to be informed about that phenomenon. :-)

Kind regards,
Florian Heß


ps. sorry, a complicated problem makes a long email, wrote it while I 
examined ...


-- 
Heidelberg University Library
Plöck 107-109, 69117 HD, Germany
- Informationstechnik
- WWW-Redaktion
http://www.ub.uni-heidelberg.de/



More information about the Eprints-tech mailing list