o le@sddlmZmZmZmZddlmZddlmZm Z ddl m Z m Z m Z mZmZddlmZmZmZmZmZmZmZmZddlTddlZdZd ZdZd Zed eZed eZe e!Z"Gd d d eZ#dS) )Flaskrender_templateredirecturl_for) Bootstrap5) FlaskForm CSRFProtect) StringField SubmitField TextAreaField IntegerField RadioField) InputRequiredLength NumberRangeOptionalRegexpValidationErrorr DataRequired)*NSargeGerbode c@sBeZdZeddeddegdZeddedd egdZe d d e ed dgdZ e d de ed dgdZ e dde eddgdZe dde eddgdZe dde egdZe dde egdZe dde egdZedgdde gdZe dde egdZe dde egdZe d d!e ed"dgdZed#de ed$d%d&gdZe d'd(e egdZ e d)d*e e!gdZ"e d+e#e ed,dgdZ$e d-e%e ed,dgdZ&e d.d/e ed,dgdZ'e d0d1e ed,dgdZ(e d2d3e ed,dgdZ)ed4d5e gdZ*e d6dedd e+gdZ,e-d7Z.e-d8d9d:id;Z/dSource: Name, or if a MS, library siglum + : + library name[s]zGB-Lbl: British LibraryzIDocument: If a book, the title; if a ms, call sign (if any) + : + ms namez ms.4.5:Foo MSzVolume # (if any):c)minmaxzSComma-separated list of pages, like 13, 14v, b3v, 15b (2nd piece starting on p. 15)cc4vbzPSection Name (optional): Must start with a number + . + space, like 12. Galliardz 123. SectionzEditor: zEncoder:z Intabulator:zmy intabulatorzArranger (optional):z my arrangerzContributor (optional):zmy contributorzRemarks: (optional)z my remarkszFile to write this to:SubmitCancelformnovalidateT)label render_kwN)0__name__ __module__ __qualname__r rname_valmyname input_val inputfiler rtitlersubtitlecomposer orig_composer ensemble_valensemblepartkey_valmkeyr difficultytype_valmtype source_valsourcedocumentr rvolumepage_valpage section_valsectionmyeditoreditor myencoderencoder intabulatorarranger contributorremarks output_val outputfiler submit btn_cancelrdrd/mnt/d/website/ft3form/form.pyrs       r)$flaskrrrrflask_bootstrapr flask_wtfrrwtformsr r r r r wtforms.validatorsrrrrrrrvalssecrets my_enc_first my_enc_last my_ed_first my_ed_lastrXrZloweruppermy_dirrrdrdrdres (