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 is a very frequent issue. The new relational backend should allow us to perform this kind of operation in a much safer way and with better performance.

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