Esempio n. 1
0
def add_images_to_doc_js(request):
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        status = 201
        doc_id = request.POST['doc_id']
        doc = Document.objects.get(id=doc_id)
        # Delete all existing image links
        DocumentImage.objects.filter(document_id=doc_id).delete()
        ids = request.POST.getlist('ids[]')
        for id in ids:
            title = 'Deleted'
            image = Image.objects.filter(id=id).first()
            if image:
                user_image = image.userimage_set.all().first()
                if user_image:
                    title = user_image.title
            else:
                image = Image()
                image.pk = id
                image.uploader = doc.owner
                f = open(
                    os.path.join(settings.PROJECT_PATH,
                                 "base/static/img/error.png"))
                image.image.save('error.png', File(f))
                image.save()
            DocumentImage.objects.create(document=doc,
                                         image=image,
                                         title=title)

    return JsonResponse(response, status=status)
Esempio n. 2
0
def add_images_to_doc(request):
    response = {}
    status = 201
    doc_id = request.POST["doc_id"]
    doc = Document.objects.get(id=doc_id)
    # Delete all existing image links
    DocumentImage.objects.filter(document_id=doc_id).delete()
    ids = request.POST.getlist("ids[]")
    for id in ids:
        doc_image_data = {"document": doc, "title": "Deleted"}
        image = Image.objects.filter(id=id).first()
        if image:
            user_image = image.userimage_set.all().first()
            if user_image:
                doc_image_data["title"] = user_image.title
                doc_image_data["copyright"] = user_image.copyright
        else:
            image = Image()
            image.pk = id
            image.uploader = doc.owner
            f = open(
                os.path.join(
                    settings.PROJECT_PATH, "base/static/img/error.png"
                )
            )
            image.image.save("error.png", File(f))
            image.save()
        doc_image_data["image"] = image
        DocumentImage.objects.create(**doc_image_data)
    return JsonResponse(response, status=status)
Esempio n. 3
0
def add_images_to_doc_js(request):
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        status = 201
        doc_id = request.POST['doc_id']
        doc = Document.objects.get(id=doc_id)
        # Delete all existing image links
        DocumentImage.objects.filter(
            document_id=doc_id
        ).delete()
        ids = request.POST.getlist('ids[]')
        for id in ids:
            title = 'Deleted'
            image = Image.objects.filter(id=id).first()
            if image:
                user_image = image.userimage_set.all().first()
                if user_image:
                    title = user_image.title
            else:
                image = Image()
                image.pk = id
                image.uploader = doc.owner
                f = open(os.path.join(
                    settings.PROJECT_PATH, "base/static/img/error.png"
                ))
                image.image.save('error.png', File(f))
                image.save()
            DocumentImage.objects.create(
                document=doc,
                image=image,
                title=title
            )

    return JsonResponse(
        response,
        status=status
    )
Esempio n. 4
0
    def author_first_submit(self):
        # The document is not part of an existing submission.
        journal_id = self.get_argument('journal_id')
        self.submission = Submission()
        self.submission.submitter = self.user
        self.submission.journal_id = journal_id
        self.submission.save()
        self.revision = SubmissionRevision()
        self.revision.submission = self.submission
        self.revision.version = "1.0.0"
        version = "1.0.0"
        # Connect a new document to the submission.
        title = self.get_argument('title')
        abstract = self.get_argument('abstract')
        contents = self.get_argument('contents')
        bibliography = self.get_argument('bibliography')
        image_ids = list(
            filter(None,
                   self.get_argument('image_ids').split(',')))
        document = Document()
        journal = Journal.objects.get(id=journal_id)
        document.owner = journal.editor
        document.title = title
        document.contents = contents
        document.bibliography = bibliography
        document.save()
        for id in image_ids:
            image = Image.objects.filter(id=id).first()
            if image is None:
                image = Image()
                image.pk = id
                image.uploader = journal.editor
                f = open(
                    os.path.join(settings.PROJECT_PATH,
                                 "base/static/img/error.png"))
                image.image.save('error.png', File(f))
                image.save()
            DocumentImage.objects.create(document=document,
                                         image=image,
                                         title='')
        self.revision.document = document
        self.revision.save()

        fidus_url = '{protocol}://{host}'.format(
            protocol=self.request.protocol, host=self.request.host)

        post_data = {
            'username': self.user.username.encode('utf8'),
            'title': title.encode('utf8'),
            'abstract': abstract.encode('utf8'),
            'first_name': self.get_argument('firstname').encode('utf8'),
            'last_name': self.get_argument('lastname').encode('utf8'),
            'email': self.user.email.encode('utf8'),
            'affiliation': self.get_argument('affiliation').encode('utf8'),
            'author_url': self.get_argument('author_url').encode('utf8'),
            'journal_id': journal.ojs_jid,
            'fidus_url': fidus_url,
            'fidus_id': self.submission.id,
            'version': version
        }

        body = urlencode(post_data)
        key = journal.ojs_key
        base_url = journal.ojs_url
        url = base_url + self.plugin_path + 'authorSubmit'
        http = AsyncHTTPClient()
        http.fetch(HTTPRequest(url_concat(url, {'key': key}), 'POST', None,
                               body),
                   callback=self.on_author_first_submit_response)