def import_galley_from_uri(article, uri, figures_uri=None): parsed = urlparse(uri) django_file = None if parsed.scheme == "file": if parsed.netloc: raise ValueError("Netlocs are not supported %s" % parsed.netloc) path = unquote(parsed.path) blob = read_local_file(path) django_file = ContentFile(blob) django_file.name = os.path.basename(path) else: raise NotImplementedError("Scheme not supported: %s" % parsed.scheme) if django_file: request = get_current_request() if request and request.user.is_authenticated(): owner = request.user else: owner = core_models.Account.objects.filter( is_superuser=True).first() request = DummyRequest(user=owner) galley = save_galley(article, request, django_file, True) if figures_uri and galley.label in {"XML", "HTML"}: figures_path = unquote(urlparse(figures_uri).path) handle_zipped_galley_images(figures_path, galley, request)
def _site_path_url(self, path=None): request = logic.get_current_request() if request and request.journal == self: if not path: path = "/{}".format(self.code) return request.build_absolute_uri(path) else: return self.press.journal_path_url(self, path)
def build_redirect_uri(site): """ builds the landing page for ORCID requests :site: Object implementing the AbstractSiteModel interface :return: (str) Redirect URI for ORCID requests """ request = logic.get_current_request() path = reverse("core_login_orcid") return request.site_type.site_url(path)
def save(self, commit=True): instance = super().save(commit=False) request = get_current_request() if request: instance.journal = request.journal if commit: instance.save() return instance
def published_articles(self): articles = submission_models.Article.objects.filter( authors=self, stage=submission_models.STAGE_PUBLISHED, date_published__lte=timezone.now(), ) request = utils_logic.get_current_request() if request and request.journal: articles.filter(journal=request.journal) return articles
def journal_path_url(self, journal, path=None): """ Returns a Journal's path mode url relative to its press """ _path = journal.code request = logic.get_current_request() if settings.DEBUG and request: port = request.get_port() else: port = None if path is not None: _path += path return logic.build_url( netloc=self.domain, scheme=self.SCHEMES[self.is_secure], port=port, path=_path, )
def get_doi_data(article): request = get_current_request() try: doi = identifier_models.Identifier.objects.get(id_type='doi', article=article) doi_url= doi.get_doi_url() logger.info("Fetching %s.." % doi_url) r = requests.get(doi_url, timeout=settings.HTTP_TIMEOUT_SECONDS) return [r, doi] except requests.exceptions.Timeout: if request: messages.add_message( request, messages.WARNING, "Timed out reaching %s" % doi_url, ) return [None, doi] except Exception as e: logger.error("Error getting DOI data: %s", e) return [None, None]