def add_or_update_article(self, **adata): "creates article+article-version stubs for testing" replacements = [ ('pub-date', 'published'), ('update', 'versionDate'), ] renkeys(adata, replacements) struct = { 'id': utils.doi2msid(adata['doi']) if 'doi' in adata else adata['manuscript_id'], 'volume': 1, 'type': 'research-article', 'title': '[default]', 'version': 1, 'status': models.VOR, 'published': '2012-01-01T00:00:00Z' } struct.update(adata) delall(struct, ['journal']) # can't be serialized, not utilised anyway with self.settings(VALIDATE_FAILS_FORCE=False): # bad ajson won't fail ingest av = ajson_ingestor.ingest_publish({'article': struct}, force=True) av.datetime_published = utils.todt(struct['published']) av.save() return av
def add_or_update_article(**article_data): """TESTING ONLY. given article data it attempts to find the article and update it, otherwise it will create it, filling any missing keys with dummy data. returns the created article.""" assert 'doi' in article_data or 'manuscript_id' in article_data, \ "a value for 'doi' or 'manuscript_id' *must* exist" if 'manuscript_id' in article_data: article_data['doi'] = utils.msid2doi(article_data['manuscript_id']) elif 'doi' in article_data: article_data['manuscript_id'] = utils.doi2msid(article_data['doi']) filler = [ 'title', 'doi', 'manuscript_id', ('volume', 1), 'path', 'article-type', ('ejp_type', 'RA'), ('version', 1), ('pub-date', '2012-01-01'), ('status', 'vor'), ] article_data = utils.filldict(article_data, filler, 'pants-party') return eif_ingestor.import_article(journal(), article_data, create=True, update=True)
def add_or_update_article(**article_data): """TESTING ONLY. given article data it attempts to find the article and update it, otherwise it will create it, filling any missing keys with dummy data. returns the created article.""" assert "doi" in article_data or "manuscript_id" in article_data, "a value for 'doi' or 'manuscript_id' *must* exist" if "manuscript_id" in article_data: article_data["doi"] = utils.msid2doi(article_data["manuscript_id"]) elif "doi" in article_data: article_data["manuscript_id"] = utils.doi2msid(article_data["doi"]) filler = [ "title", "doi", "manuscript_id", ("volume", 1), "path", "article-type", ("ejp_type", "RA"), ("version", 1), ("pub-date", "2012-01-01"), ("status", "vor"), ] article_data = utils.filldict(article_data, filler, "pants-party") return eif_ingestor.import_article(journal(), article_data, create=True, update=True)
def update(art): msid = utils.doi2msid(art.doi) assert msid, "msid cannot be null. got %r for %r" % (msid, art) art.manuscript_id = msid art.save() return art
def row(art): poa = art.earliest_poa() vor = art.earliest_vor() return (utils.doi2msid(art.doi), ymd_dt(poa), ymd_dt(vor))