NAME

This is the base class for achievement times. This defines an interface for all of the achievement items. Each achievement item will have an id, a name, a description, and the three methods can_use (checks if the item can be used on the given set), print_form (prints the form to use the item), and use_item.

Note: the ID has to match the name of the class.

The global method UserItems returns an array of all achievement items available to the given user. If no set is included, a list of all earned achievement items is return. If provided a set and corresponding problem or test version records, a list of items usable on the current set and records paired with an input form to use the item is returned. This method will also process any posts to use the achievement item.