def check_save(sender, **kwargs): """ Checks item type uniqueness, field applicability and multiplicity. """ tag = kwargs['instance'] obj = Tag.get_object(tag) previous_tags = Tag.get_tags(obj) err_uniq = check_item_type_uniqueness(tag, previous_tags) err_appl = check_field_applicability(tag) err_mult = check_field_multiplicity(tag, previous_tags) err_msg = generate_error_message(tag, err_uniq, err_appl, err_mult) if err_uniq or err_appl or err_mult: raise TypeError(err_msg)
def delete_tags(sender, **kwargs): """ Delete the tags pointing to an object. """ try: obj = kwargs.get('instance') tags = Tag.get_tags(obj) tags.delete() except AttributeError: pass
def render_meta(obj, vocabulary): result = u'<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/">' tags = Tag.get_tags(obj) if tags: value = tags[0].item_type.type_name meta_tag = u'<meta property="DC.type" content="%s"/>' % value result = u'%s\n%s' % (result, meta_tag) for tag in tags: field = tag.field name = field.namespaces.get(vocabulary, field.field_name) value = tag.value meta_tag = u'<meta property="DC.%s" content="%s"/>' % (name, value) result = u'%s\n%s' % (result, meta_tag) return result