diff options
| author | Bryan Newbold <bnewbold@robocracy.org> | 2019-05-13 14:23:02 -0700 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-05-13 14:23:06 -0700 | 
| commit | 955d4942d5111cbbd8f4b99d4e3c6d79262dab6e (patch) | |
| tree | 87757a7afdf00ab6de5ed7455267654bf49b5239 /python/fatcat_web/forms.py | |
| parent | 287e892abb4adac8ea7f7211524a41c7cd06851c (diff) | |
| download | fatcat-955d4942d5111cbbd8f4b99d4e3c6d79262dab6e.tar.gz fatcat-955d4942d5111cbbd8f4b99d4e3c6d79262dab6e.zip  | |
partial python impl of ext_id and release_stage refactors
Diffstat (limited to 'python/fatcat_web/forms.py')
| -rw-r--r-- | python/fatcat_web/forms.py | 24 | 
1 files changed, 17 insertions, 7 deletions
diff --git a/python/fatcat_web/forms.py b/python/fatcat_web/forms.py index 79365687..e22476ce 100644 --- a/python/fatcat_web/forms.py +++ b/python/fatcat_web/forms.py @@ -9,7 +9,7 @@ from wtforms import SelectField, DateField, StringField, IntegerField, \      HiddenField, FormField, FieldList, validators  from fatcat_client import ContainerEntity, CreatorEntity, FileEntity, \ -    ReleaseEntity, ReleaseContrib, FileEntityUrls +    ReleaseEntity, ReleaseContrib, FileEntityUrls, ReleaseEntityExtIds  release_type_options = [      ('', 'Unknown'), @@ -21,7 +21,7 @@ release_type_options = [      ('dataset', 'Dataset'),      ('stub', 'Invalid/Stub'),  ] -release_status_options = [ +release_stage_options = [      ('', 'Unknown'),      ('draft', 'Draft'),      ('submitted', 'Submitted'), @@ -62,9 +62,10 @@ class ReleaseContribForm(FlaskForm):          default='author')  RELEASE_SIMPLE_ATTRS = ['title', 'original_title', 'work_id', 'container_id', -    'release_type', 'release_status', 'release_date', 'doi', 'wikidata_qid', -    'isbn13', 'pmid', 'pmcid', 'volume', 'issue', 'pages', 'publisher', -    'language', 'license_slug'] +    'release_type', 'release_stage', 'release_date', 'volume', 'issue', +    'pages', 'publisher', 'language', 'license_slug'] + +RELEASE_EXTID_ATTRS = ['doi', 'wikidata_qid', 'isbn13', 'pmid', 'pmcid']  class ReleaseEntityForm(EntityEditForm):      """ @@ -85,7 +86,7 @@ class ReleaseEntityForm(EntityEditForm):          [validators.DataRequired()],          choices=release_type_options,          default='') -    release_status = SelectField(choices=release_status_options) +    release_stage = SelectField(choices=release_stage_options)      release_date = DateField('Release Date',          [validators.Optional(True)])      #release_year @@ -118,6 +119,9 @@ class ReleaseEntityForm(EntityEditForm):          for simple_attr in RELEASE_SIMPLE_ATTRS:              a = getattr(ref, simple_attr)              a.data = getattr(re, simple_attr) +        for extid_attr in RELEASE_EXTID_ATTRS: +            a = getattr(ref, extid_attr) +            a.data = getattr(re.ext_ids, extid_attr)          for i, c in enumerate(re.contribs):              rcf = ReleaseContribForm()              rcf.prev_index = i @@ -128,7 +132,7 @@ class ReleaseEntityForm(EntityEditForm):      def to_entity(self):          assert(self.title.data) -        entity = ReleaseEntity(title=self.title.data) +        entity = ReleaseEntity(title=self.title.data, ext_ids=ReleaseEntityExtIds())          self.update_entity(entity)          return entity @@ -145,6 +149,12 @@ class ReleaseEntityForm(EntityEditForm):              if a == '':                  a = None              setattr(re, simple_attr, a) +        for extid_attr in RELEASE_EXTID_ATTRS: +            a = getattr(self, simple_attr).data +            # special case blank strings +            if a == '': +                a = None +            setattr(re.ext_ids, simple_attr, a)          # bunch of complexity here to preserve old contrib metadata (eg,          # affiliation and extra) not included in current forms          # TODO: this may be broken; either way needs tests  | 
