X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/11da6ea358e7b059888fd4d8a1af2edb739d1762..042196842c177084eb717ed6191e1b3d5d3ef82e:/apps/catalogue/management/commands/fixdc.py diff --git a/apps/catalogue/management/commands/fixdc.py b/apps/catalogue/management/commands/fixdc.py index a80352d7..564773e9 100644 --- a/apps/catalogue/management/commands/fixdc.py +++ b/apps/catalogue/management/commands/fixdc.py @@ -9,27 +9,35 @@ from catalogue.management import XmlUpdater from catalogue.management.commands import XmlUpdaterCommand +def fix_wluri(elem, change, verbose): + try: + WLURI.strict(elem.text) + except ValidationError: + correct_field = unicode(WLURI.from_slug( + WLURI(elem.text.strip()).slug)) + try: + WLURI.strict(correct_field) + except ValidationError: + # Can't make a valid WLURI out of it, leave as is. + return False + if verbose: + print "Changing %s from %s to %s" % ( + elem.tag, elem.text, correct_field + ) + elem.text = correct_field + return True + + class FixDC(XmlUpdater): commit_desc = "auto-fixing DC" retain_publishable = True only_first_chunk = True - def fix_wluri(elem, change, verbose): - try: - WLURI.strict(elem.text) - except ValidationError: - correct_field = unicode(WLURI.from_slug( - WLURI(elem.text.strip()).slug)) - if verbose: - print "Changing %s from %s to %s" % ( - elem.tag, elem.text, correct_field - ) - elem.text = correct_field - return True for field in BookInfo.FIELDS: if field.validator == WLURI: XmlUpdater.fixes_elements('.//' + field.uri)(fix_wluri) + # unused @XmlUpdater.fixes_elements(".//" + RDFNS("Description")) def fix_rdfabout(elem, change, verbose): correct_about = change.tree.book.correct_about()