EPrints Technical Mailing List Archive

Message: #00126


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

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


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/