This is a snapshot of Indico's old Trac site. Any information contained herein is most probably outdated. Access our new GitHub site here.

Opened 3 years ago

Last modified 18 months ago

#1125 new defect

Improve avatar merging process

Reported by: pferreir Owned by:
Priority: critical Milestone: v2.0
Component: General Version: 0.97-dev
Keywords: Cc:

Description

Right now we are checking for all the places where a user exists, by using the linkedTo dictionary. This is not only slow, but hard to maintain as well.

We could follow a different strategy:

  • When two avatars are merged, link the merged avatar to the one it's been merged into, and add the former to the latter's "sub-avatar" list. This would a list of all identities that had been merged into a specific Avatar;
  • The parent avatar is called instead of the sub-avatar whenever checks are to be made (or information extracted) - this could be done with a sub-class (?);

This would have the following advantages:

  • Faster merging;
  • No loss of data;
  • "Unmerging" becomes possible without a lot of work;

Change History (5)

comment:1 Changed 3 years ago by pferreir

  • Milestone set to v1.xx

comment:2 Changed 3 years ago by pferreir

  • Priority changed from normal to critical

comment:3 Changed 3 years ago by jbenito

Beware that this should work also for favorites. We have had many cases of people using favorites that do not exist anymore because of merging.

comment:4 Changed 3 years ago by jbenito

  • Milestone changed from v1.xx to v1.5

comment:5 Changed 18 months ago by pferreir

  • Milestone changed from v2.3 to v2.0

I'm moving this to 2.0 since it very frequently causes issues. The new relational backend should allow us to perform this kind of operation in a much safer way and with better performance.

Version 1, edited 18 months ago by pferreir (previous) (next) (diff)
Note: See TracTickets for help on using tickets.