def calculate_field( self, field_name ):
        from exemption_record import exemption_record

        if field_name == 'exemption_count':
            self['exemption_count'] = len(self['exemptions'])

        elif field_name == 'missing_volume_exemption_count':

            count = 0
            for publication_id in self['exemptions']:
                r = exemption_record.get_record( publication_id=publication_id )
                if (r['volume'] is None) or (r['volume'] == 0):
                    count += 1

            self['missing_volume_exemption_count'] = count

        elif field_name == 'exemption_volume':

            volume = 0
            for publication_id in self['exemptions']:
                r = exemption_record.get_record( publication_id=publication_id )
                volume += r['volume'] if r['volume'] is not None else 0

            self['exemption_volume'] = volume

        elif field_name == 'exemption_offices':
            from exemption_record import exemption_record

            ret = {}

            for publication_id in self['exemptions']:
                r = exemption_record.get_record( publication_id=publication_id )
                ret.setdefault( r['publisher'], [] )
                ret[r['publisher']].append( r )

            self['exemption_offices'] = ret

        elif field_name == 'exemption_offices_2014':
            from exemption_record import exemption_record

            ret = {}

            started_2014 = numerate_date( '1/1/2014' )

            for publication_id in self['exemptions']:
                r = exemption_record.get_record( publication_id=publication_id )

                if numerate_date(r['start_date']) < started_2014:
                    continue

                ret.setdefault( r['publisher'], [] )
                ret[r['publisher']].append( r )

            self['exemption_offices_2014'] = ret


        else:
            raise KeyError( 'unknown field %s' % field_name )
    def go_to_publication_id( self, publication_id ):
        self.publication_id = publication_id

        url = exemption_record.get_record( publication_id=publication_id )['url']

        self.go_to_url( url )