diff --git a/generate_oly_score.py b/generate_oly_score.py index b7361d98851e1d611c0e20694f95f06e36e54faf..33e0f931eecb987189f768b08b338ac002d741ee 100755 --- a/generate_oly_score.py +++ b/generate_oly_score.py @@ -553,9 +553,16 @@ def generate_webshop_files (settings, lily_files, tex_files): if i in noscore_instruments: continue; score_info = score_types.get (i, {}); - score_type = score_info.get ("Name", ""); + score_type = score_info.get ("Name", i); score_id = score_info.get ("Number", "XXX"); - sid = int(score_id); + try: + # Replace '1a' to 1.01 (i.e. appended letters will indicate decimals, so they are sorted after 1) + def chartoindex(matchobj): + return "%s.%02d" % (matchobj.group(1), ord(matchobj.group(2).lower())-96); + sid = re.sub(r'^([0-9]+)([a-zA-Z])$', chartoindex, score_id); + sid = float(sid); + except ValueError as e: + sid = score_id; scores.append({"id": sid, "sku": score_settings.get ("scorenumber")+"-"+score_id, "type": score_type }); webshop_settings["webshop_editions"] = sorted (scores, key=lambda k: k.get("id", 0));