예제 #1
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def article_file_form(request, article_name):
    # art_form = ArticleForm()
    message = None
    if article_name:
        pk = decrypt_text(article_name)
        try:
            art_info = Article.objects.get(id__exact=pk)
            # art_form = ArticleForm(initial=model_to_dict(art_info))
            art_files = ArticleFile.objects.filter(article=art_info)

            for x in art_files:
                print(x.file_name, '---')

            # form.fields['patient_hospid'].initial = admitted.patient.patient_hospid
            return render(
                request, 'articles/article_submission.html', {
                    'system_name': 'Article Form - Files',
                    'art_files': 'active',
                    'art_info': art_info,
                    'article_files': art_files,
                })
        except Article.DoesNotExist or Article:
            message = 'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
    else:
        message = 'Invalid Data.<a href="articles/articles-list"> Click here</a> to see article list'

    return HttpResponse(message)
예제 #2
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def get_article_info(request, article_name=None):

    if not request.user.is_authenticated():
        return HttpResponseRedirect('/sign-in/')
    print('article_info')
    message = None

    pk = decrypt_text(article_name)
    art_info = None
    art_auths = None
    try:
        art_info = Article.objects.get(id__exact=pk)
        art_auths = ArticleAuthor.objects.filter(article=art_info)

        # message=art_info.title +'- Article .<a href="/articles/articles-list/"> Click here</a> to see article list'
    except Article.DoesNotExist or Article:
        message = 'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
        return HttpResponse(message)

    if 'joumsy_message' in request.session:
        message = request.session.get('joumsy_message')
        del request.session['joumsy_message']

    return render(
        request, 'articles/article_info.html', {
            'system_name': 'Article Info',
            'art_info': art_info,
            'author_list': art_auths,
            'message': message
        })
예제 #3
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def submit_article(request, article_name=None):
    message = None

    if article_name:
        pk = decrypt_text(article_name)
        dt = datetime.today()
        try:
            art_info = Article.objects.get(id__exact=pk)

            try:
                ArticleFile.objects.get(main=True, article=art_info)
                art_info.is_submitted = True
                art_info.date_submitted = dt
                art_info.state = 'ACC'
                art_info.save()
            except ArticleFile.DoesNotExist or ArticleFile:
                request.session[
                    'joumsy_message'] = "Please Complete Submission"

                direct = '/articles/submission_info/' + encrypt_text(
                    str(art_info.id))
                return HttpResponseRedirect(direct)

            message = art_info.title + '- has been submitted.'
            request.session['joumsy_message'] = message

        except Article.DoesNotExist or Article:
            message = 'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
            return HttpResponse(message)

        direct = '/articles/submission_info/' + encrypt_text(str(art_info.id))

        return HttpResponseRedirect(direct)

    return HttpResponse(message)
예제 #4
0
def get_jms_article_info(request, article_name=None):
	
	if not request.user.is_authenticated():
		return HttpResponseRedirect('/sign-in/')
	
	message=None
	
	pk = decrypt_text(article_name)
	art_info=None
	art_auths=None
	assigned_eddie=None
	eds_decision=None
	main_file=None
	try:
		art_info = Article.objects.get(id__exact=pk)
		art_auths =  ArticleAuthor.objects.filter(article = art_info)
		art_files = ArticleFile.objects.filter(article = art_info )
		try:
			main_file = ArticleFile.objects.get(article = art_info, main=True)
		except ArticleFile.DoesNotExist or ArticleFile:
			main_file=None	
		

		try:
			assigned_eddie = AssignEditor.objects.get(article=art_info, is_accepted=True, is_active=True)
		except AssignEditor.DoesNotExist or AssignEditor:
			assigned_eddie = None
		
		if EditorDecision.objects.filter(article=art_info).exists():
			eds_decision = EditorDecision.objects.filter(article=art_info, decided=True).latest('date_decided')

		# message=art_info.title +'- Article .<a href="/articles/articles-list/"> Click here</a> to see article list'
	except Article.DoesNotExist or Article:
		message='Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
		return HttpResponse(message)
	
	if 'joumsy_message' in request.session:
		message = request.session.get('joumsy_message')
		del request.session['joumsy_message']

	return render(
		request,
		'journals/jms_article_info.html',
		{
			'system_name': 'Submission InReview',
			'art_info':art_info,
			'author_list': art_auths,
			'art_files_list': art_files,
			'assigned_eddie':assigned_eddie,
			'message':message,
			'art_meta':'active',
			'eds_decision':eds_decision,
			'main_file':main_file,
		}
	)
예제 #5
0
def search_reviewer(request, art_state=None):

	search_val = request.GET.get('search_text')
	art_pk = request.GET.get('art')
	pk = decrypt_text(art_pk)
	url = 'journals/reviewer_list.html';
	# url = request.GET.get('url')
	# s_type = request.GET.get('opd_search_filter')
	# print(url)
	pname = request.GET.get('search_text').split()

	SYSTEM_NAME = 'Search Result'

	qset1 =  reduce(Q.__or__, [Q(first_name__istartswith=query) | Q(last_name__istartswith=query) for query in pname])
	
	revs =  User.objects.filter((qset1) & Q(groups__id__exact=2) )

	reviewers_list =[]

	try:
		art_info = Article.objects.get(id__exact=pk)

		for x in revs:
			chk=ReviewDetails.objects.filter(reviewer= x,article=art_info).exists()
			if not chk:
				h = {
					'reviewers_name': x.first_name +" "+x.last_name,
					'reviewer_info': x,
					'done_review':ReviewDetails.objects.filter(reviewer= x,is_done=True).count(),
					# 'current_invitation':ReviewDetails.objects.filter(reviewer= x,is_invited=True).count(),
				}

				reviewers_list.append(h)
		

	except Article.DoesNotExist or Article:
		message='Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
		return HttpResponse(message)
	data ={
		'reviewers_list':reviewers_list,
		'art_info':art_info
	}

	return render(request, url, data)
예제 #6
0
def search_editor(request, art_state=None):

	search_val = request.GET.get('search_text')
	art_pk = request.GET.get('art')
	pk = decrypt_text(art_pk)
	url = 'journals/editor_list.html';
	# url = request.GET.get('url')
	# s_type = request.GET.get('opd_search_filter')
	# print(url)
	pname = request.GET.get('search_text').split()

	SYSTEM_NAME = 'Search Result'

	qset1 =  reduce(Q.__or__, [Q(first_name__istartswith=query) | Q(last_name__istartswith=query) for query in pname])
	
	eddie =  User.objects.filter( (qset1) & Q(groups__id__exact=4) )

	assoc_editors_list = []

	try:
		art_info = Article.objects.get(id__exact=pk)

		for x in eddie:
			chk=EditorDecision.objects.filter(editor= x,article=art_info).exists()
			is_auth = ArticleAuthor.objects.filter(author= x, article=art_info).exists()
			if not is_auth and not chk:
				h = {
					'editor_name': x.first_name +" "+x.last_name,
					'assoc_editor_info': x,
					'done_decision':EditorDecision.objects.filter(editor= x, decided=True, is_rescind_descision=False).count(),
					'current_work':AssignEditor.objects.filter(assoc_editor= x, is_accepted= True, is_active=True, is_done=False).count(),
				}

				assoc_editors_list.append(h)

	except Article.DoesNotExist or Article:
		message='Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
		return HttpResponse(message)
	data ={
		'assoc_editors_list':assoc_editors_list,
		'art_info':art_info,
		'from_search':search_val
	}
	return render(request, url, data)
예제 #7
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def review_form_save(request, ref_det=None):

    if not request.user.is_authenticated():
        return HttpResponseRedirect('/sign-in/')

    pk = decrypt_text(ref_det)
    art_info = None
    art_auths = None
    dt = datetime.datetime.now()

    if request.method == 'POST':
        rev_form = Review_Submission_Form(request.POST, request.FILES)

        try:
            rev_info = ReviewDetails.objects.get(id__exact=pk)
            print(rev_info.article.title, '--rev_article----')

            rev_info.recommendation = request.POST.get('recommendation')
            rev_info.acceptability = request.POST.get('acceptability')
            rev_info.clarity = request.POST.get('clarity')
            rev_info.quality = request.POST.get('quality')
            rev_info.abstract_review = request.POST.get('abstract_review')

            rev_info.comments_for_editor = request.POST.get(
                'comments_for_editor')
            rev_info.comments_for_author = request.POST.get(
                'comments_for_author')

            rev_info.save()

            art_auths = ArticleAuthor.objects.filter(article=rev_info.article)
            art_files = ArticleFile.objects.filter(article=rev_info.article,
                                                   state='SUP')

            return HttpResponseRedirect('/reviews/submission_meta/' +
                                        encrypt_text(str(rev_info.id)))

            # message=art_info.title +'- Article .<a href="/articles/articles-list/"> Click here</a> to see article list'
        except ReviewDetails.DoesNotExist or Article:
            message = 'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
            return HttpResponse(message)

    else:
        return HttpResponseRedirect("Denied")
예제 #8
0
def assign_issue_article_display(request, article_name):
	
	if not request.user.is_authenticated():
		return HttpResponseRedirect('/sign-in/')
	
	message=None
	issue_select_form = IssueSelectionForm()
	
	pk = decrypt_text(article_name)
	art_info=None
	art_auths=None
	eddie_decision=None
	try:
		art_info = Article.objects.get(id__exact=pk)
		art_auths =  ArticleAuthor.objects.filter(article = art_info)
		art_files = ArticleFile.objects.filter(article = art_info )
		try:
			eddie_decision = EditorDecision.objects.filter(article=art_info, decided=True, decision='ACC')
		except EditorDecision.DoesNotExist or EditorDecision:
			print('unable to retrieve decision!!!')

	except Article.DoesNotExist or Article:
		message='Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
		return HttpResponse(message)
	
	if 'joumsy_message' in request.session:
		message = request.session.get('joumsy_message')
		del request.session['joumsy_message']

	return render(
		request,
		'journals/inedit_article_info.html',
		{
			'system_name': 'Submission InEdit',
			'art_info':art_info,
			'author_list': art_auths,
			'art_files_list': art_files,
			'eddie_decision':eddie_decision,
			'message':message,
			'issue_select_form':issue_select_form,
		}
	)
예제 #9
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def upload_article_file(request, article_name=None):
    message = None

    if article_name:
        pk = decrypt_text(article_name)
        dt = datetime.today()
        many_files = request.FILES.getlist('artfiles')

        # file_name = 				models.CharField(max_length=100, null= True)
        # file_path = 				models.FileField(upload_to='article_file')
        # date_created  = 			models.DateTimeField(auto_now = True)
        # article =					models.ForeignKey(Article, null=True)
        # uploader =					models.ForeignKey(User, null=True)
        try:
            art_info = Article.objects.get(id__exact=pk)
            creator = request.user

            for x in many_files:

                a_file = ArticleFile(file_name=x.name,
                                     file_path=x,
                                     article=art_info,
                                     date_created=dt,
                                     uploader=creator,
                                     main=False,
                                     state='SUP')

                a_file.save()

            return HttpResponse('Files uploaded! ')

        except Article.DoesNotExist or Article:
            message = 'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
            return HttpResponse(message)

        # direct='/articles/submission_info/'+encrypt_text(str(art_info.id))

        # return HttpResponseRedirect(direct)

    return HttpResponse(message)
예제 #10
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def get_review_article_info(request, ref_det=None):

    if not request.user.is_authenticated():
        return HttpResponseRedirect('/sign-in/')

    message = None

    pk = decrypt_text(ref_det)
    art_info = None
    art_auths = None
    rev_form = None
    try:
        rev_info = ReviewDetails.objects.get(id__exact=pk,
                                             invitation_declined=False)

        if rev_info.invitation_accepted == True:
            rev_form = 'active'

        art_auths = ArticleAuthor.objects.filter(article=rev_info.article)
        art_files = ArticleFile.objects.filter(article=rev_info.article,
                                               state='SUP')
        art_submission_file = ArticleFile.objects.get(article=rev_info.article,
                                                      main=True)

        # message=art_info.title +'- Article .<a href="/articles/articles-list/"> Click here</a> to see article list'
    except ReviewDetails.DoesNotExist or Article:
        message = 'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
        return HttpResponse(message)

    return render(
        request, 'reviews/submission_review.html', {
            'system_name': 'Article Info',
            'rev_info': rev_info,
            'author_list': art_auths,
            'files_list': art_files,
            'message': message,
            'art_meta': 'active',
            'is_accepted': rev_form,
            'art_submission_file': art_submission_file,
        })
예제 #11
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def accept_review(request, ref_det=None):

    if not request.user.is_authenticated():
        return HttpResponseRedirect('/sign-in/')

    message = None

    pk = decrypt_text(ref_det)
    art_info = None
    art_auths = None
    dt = datetime.datetime.now()
    try:
        rev_info = ReviewDetails.objects.get(id__exact=pk)
        print(rev_info.article.title, '--rev_article----')

        rev_info.invitation_accepted = True
        rev_info.is_active = True

        rev_info.date_confirmed = dt

        rev_info.save()
        # rev_info.article.status='REV'
        # rev_info.article.save()
        # check if updating article state is_saved

        art_auths = ArticleAuthor.objects.filter(article=rev_info.article)
        art_files = ArticleFile.objects.filter(article=rev_info.article,
                                               state='SUP')

        return HttpResponseRedirect('/reviews/submission_meta/' +
                                    encrypt_text(str(rev_info.id)) + '/')

        # message=art_info.title +'- Article .<a href="/articles/articles-list/"> Click here</a> to see article list'
    except ReviewDetails.DoesNotExist or Article:
        message = 'Invalid Data.<a href="/reviews/"> Click here</a> to see article list'
        return HttpResponse(message)

    return HttpResponseRedirect('/reviews/submission_meta/' +
                                encrypt_text(str(rev_info.id)) + '/')
예제 #12
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def article_author_update_form(request, article_info=None, auth_info=None):

    art_auths = User.objects.get(id=auth_info)
    arts = decrypt_text(article_info)
    art_info = Article.objects.get(id=arts)

    auth_form = Author_Form(initial=model_to_dict(art_auths))
    # return HttpResponseRedirect('/articles/')
    # iss = Issue.objects.filter(is_published = True)
    message = None
    if 'auth_prof_message' in request.session:
        message = request.session.get('auth_prof_message')
        del request.session['auth_prof_message']

    return render(
        request, 'profile_display.html', {
            'system_name': 'User - ' + request.user.username,
            'author_form': auth_form,
            'curr_user': art_auths,
            'message': message,
            'art_info': art_info,
        })
예제 #13
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def display_review_form(request, ref_det=None):

    if not request.user.is_authenticated():
        return HttpResponseRedirect('/sign-in/')

    message = None

    pk = decrypt_text(ref_det)
    jms_rev_details_form = None
    art_info = None
    art_files = None
    try:
        rev_info = ReviewDetails.objects.get(id__exact=pk,
                                             invitation_declined=False)

        if rev_info.invitation_accepted == True:
            rev_form = 'active'

            jms_rev_details_form = Review_Submission_Form(
                initial=model_to_dict(rev_info))
            art_info = Article.objects.get(id=rev_info.article.id)
            art_files = ArticleFile.objects.filter(article=rev_info.article)
        # message=art_info.title +'- Article .<a href="/articles/articles-list/"> Click here</a> to see article list'
    except ReviewDetails.DoesNotExist or Article:
        message = 'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
        return HttpResponse(message)

    return render(
        request, 'reviews/submission_review.html', {
            'system_name': 'Review Form',
            'rev_info': rev_info,
            'message': message,
            'is_accepted': rev_form,
            'art_rev_form': 'active',
            'review_form': jms_rev_details_form,
            'art_info': art_info,
            'art_files': art_files,
        })
예제 #14
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def article_author_form(request, article_name=None):

    # art_form = ArticleForm()
    # print('asdasdas')
    message = None
    art_auths = None

    if article_name:
        pk = decrypt_text(article_name)
        try:
            art_info = Article.objects.get(id__exact=pk)

            art_auths = ArticleAuthor.objects.filter(article=art_info)

            # form.fields['patient_hospid'].initial = admitted.patient.patient_hospid
            added = None

            auth_form = Author_Form()

            if 'article_auths' in request.session:
                added = request.session['article_auths']
            return render(
                request, 'articles/article_submission.html', {
                    'system_name': 'Article Form - Author',
                    'author_form': auth_form,
                    'art_auth': 'active',
                    'art_info': art_info,
                    'author_list': art_auths,
                    'newly_add': added,
                })

        except Article.DoesNotExist or Article:
            message = 'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
    else:
        message = 'Invalid Data.<a href="articles/articles-list"> Click here</a> to see article list'

    return HttpResponse(message)
예제 #15
0
def get_invite_template(request):
	
	temp_key = request.GET.get('tempform')
	artid= request.GET.get('sub_info')
	_id_art=decrypt_text(artid)
	rev = request.GET.get('assigned_reviewer')
	rev_id = decrypt_text(rev)

	if not request.user.is_authenticated():
		return HttpResponseRedirect('/sign-in/')
	
	message=""
	# user = request.user
	# a =  User.objects.get(username=user)

	dt = datetime.datetime.now()
	dt= dt+ timedelta(days=2)
	try:
		email_temp = JMSTemplate.objects.get( template_title = temp_key )
		assigned_reviewer = User.objects.get(id=rev_id)
		art_info = Article.objects.get(id=_id_art)

		art_auths=ArticleAuthor.objects.filter(article=art_info)
		a_names=""
		
		for x in art_auths:
			a_names=a_names+ x.author.last_name.title() +', '+x.author.first_name.title()+'<br />'

		userpicks=dict()
		userpicks['article_authors'] = a_names
		userpicks['reviewer'] = assigned_reviewer.get_full_name()
		userpicks['date_response_review'] = dt.strftime('We are the %b %d, %Y')
		userpicks['date_ended']='December 2, 2016'

		userpicks['article_title'] = art_info.title
		userpicks['article_abstract'] = art_info.abstract
		
		userpicks['article_review_url'] = 'http://localhost:8000/articles/submission/'+str(art_info.id)
		

		userpicks['reset_url_password'] = '******'
		
		
		edit = User.objects.get(username=request.user)
		userpicks['editor_name'] =edit.get_full_name()
		userpicks['affiliation']= edit.affiliation
		userpicks['email_address']=edit.email
		userpicks['web_main_address']='http://localhost:8000/'


		test_content=email_temp.content
		email_format = test_content.format(**userpicks)

	except JMSTemplate.DoesNotExist or JMSTemplate:
		message="template does no longer_exist"


	return render(
		request,
		'journals/email_template.html',
		{
			'page_title': 'List of Article',
			'email_title':email_temp.title,
			'email_content':email_format,
			'to_user':assigned_reviewer,
			'art_details': art_info.id,
		}
	)
예제 #16
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def article_author_save(request):
    message = None

    if request.method == 'POST':
        print('saving author data...')
        art_form = Author_Form(request.POST)

        art_id_ = request.POST.get('submission_meta')

        _id = decrypt_text(art_id_)
        arts = Article.objects.get(id=_id)

        if art_form.is_valid():
            print('author form  valid...')
            dt = datetime.today()
            article_auth = User(
                user_type='AUTH',
                gender='0',
                contact_no=art_form.cleaned_data['contact_no'],
                address=art_form.cleaned_data['address'],
                email=art_form.cleaned_data['email'],
                affiliation=art_form.cleaned_data['affiliation'],
                department=art_form.cleaned_data['department'],
                position_title=art_form.cleaned_data['position_title'],
                first_name=art_form.cleaned_data['first_name'],
                last_name=art_form.cleaned_data['last_name'],
                # middle_name		= art_form.cleaned_data['middle_name'],
                username=genEmpUsername(),
                is_superuser=False,
                is_staff=True,
                is_active=False,
                # degree          = models.CharField(max_length = 120, null=True)
                # research_interest = models.CharField(max_length = 420, null=True)
                # fax_number      = models.CharField(max_length = 20 , null=True)
            )

            article_auth.save()

            # User.save()
            # if not is_author_exists(arts,article_auth):
            sub_author = ArticleAuthor(
                author=article_auth,
                article=arts,
                date_added=dt,
                main_author=False,
            )
            sub_author.save()

            # class Meta():
            # 	db_table = 'article_author'

            direct = '/articles/submission/' + art_id_ + '/authors'
            request.session['article_auths'] = art_form.cleaned_data[
                'first_name'] + ', ' + art_form.cleaned_data['last_name']
            return HttpResponseRedirect(direct)

        else:
            print('form is not valid')
            print(art_form.errors)
            return render(
                request, 'articles/article_submission.html', {
                    'system_name': 'Article Form - Author',
                    'auth_form': art_form,
                    'art_auth': 'active',
                    'art_info': arts,
                    'author_list': None,
                })
    else:
        return HttpResponse('notpost !')
예제 #17
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def del_article_author(request):
    art_auth_id_ = request.GET.get('art_auth')
    art_auth_id_ = decrypt_text(art_auth_id_)
    ArticleAuthor.objects.get(id=art_auth_id_).delete()
    return HttpResponse('yes')
예제 #18
0
파일: views.py 프로젝트: ghallo30/msrc_jms
def update_article_info(request, article_name=None):
    message = None
    main_file = None
    if article_name:
        pk = decrypt_text(article_name)
        try:
            art_info = Article.objects.get(id__exact=pk)
            # request.session['article'] = pk
            # message=art_info.title +'- Article .<a href="/articles/articles-list/"> Click here</a> to see article list'
            if ArticleFile.objects.filter(article=art_info,
                                          main=True).exists():
                main_file = ArticleFile.objects.get(article=art_info,
                                                    main=True)

        except Article.DoesNotExist or Article:
            message = 'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
            return HttpResponse(message)

        art_form = ArticleForm(initial=model_to_dict(art_info))

        return render(
            request, 'articles/article_submission.html', {
                'system_name': 'Article Form',
                'meta_form': art_form,
                'art_meta': 'active',
                'art_info': art_info,
                'main_file': main_file,
            })
    else:
        if request.method == 'POST':
            artform = ArticleForm(request.POST, request.FILES)
            print("we got the form")
            dt = datetime.today()
            if artform.is_valid():
                print("checking for duplicate file", )

                # old = request.session['article']
                old = request.POST.get('art_detail')
                old_art = Article.objects.get(id=old)
                check = False

                # datetime.today()
                try:
                    pasyente = Article.objects.exclude(
                        id__exact=old_art.id).get(
                            title__iexact=request.POST.get('title'))
                    check = True
                    message = 'Article Info exist.'
                except Article.DoesNotExist or Article:
                    pass

                if not check:
                    print("no duplicate")

                    old_art.title = artform.cleaned_data['title']
                    old_art.section = artform.cleaned_data['section']
                    old_art.references = artform.cleaned_data['references']
                    old_art.keywords = artform.cleaned_data['keywords']
                    old_art.abstract = artform.cleaned_data['abstract']
                    old_art.is_featured = False
                    old_art.pub_date = None
                    old_art.require_review = False
                    date_modified = dt

                    old_art.save()

                    if 'main_file' in request.FILES:
                        # print(request.FILES['image_path'])
                        art_file = request.FILES['main_file']
                        if ArticleFile.objects.filter(article=old_art,
                                                      main=True).exists():
                            main_art_file = ArticleFile.objects.get(
                                article=old_art, main=True)
                            os.unlink(main_art_file.file_path.path)
                            main_art_file.file_name = art_file.name + '_1'
                            main_art_file.file_path = art_file
                            main_art_file.date_created = dt
                            main_art_file.save()

                        else:
                            a_file = ArticleFile(file_name=art_file.name,
                                                 file_path=art_file,
                                                 article=old_art,
                                                 date_created=dt,
                                                 uploader=request.user,
                                                 state='AUTH',
                                                 main=True,
                                                 stage=1)
                            a_file.save()

                    # saved_pats = str(request.session['patient']) + patientform.cleaned_data['firstname'] + patientform.cleaned_data['lastname']

                    # delete session
                    # del request.session['article']
                    # request.session['article_auths']

                    request.session[
                        'updated_succ_messages'] = 'Article Successfully updated.'

                    direct = ('/articles/submission/' +
                              encrypt_text(str(old_art.id)))

                    return HttpResponseRedirect(direct)
                else:
                    return HttpResponseRedirect('/error-404/')

            else:
                print("form is not valid")
                main_file = None
                old = request.POST.get('art_detail')
                if ArticleFile.objects.filter(article=art_info,
                                              main=True).exists():
                    main_file = ArticleFile.objects.get(article=art_info,
                                                        main=True)
                art_info = Article.objects.get(id=old)
                form = ArticleForm()

                form.fields['title'].initial = request.POST.get('title')
                form.fields['abstract'].initial = request.POST.get('abstract')
                form.fields['keywords'].initial = request.POST.get('keywords')
                form.fields['references'].initial = request.POST.get(
                    'references')

                # del request.session['article']

                return render(
                    request, 'articles/article_submission.html', {
                        'system_name': 'Article Form',
                        'meta_form': form,
                        'art_meta': 'active',
                        'art_info': art_info,
                        'message':
                        'Please fill form properly. Unable to update data.',
                        'main_file': main_file,
                    })

    return HttpResponse(message)
예제 #19
0
def jms_article_info_review(request, article_name=None):
	
	if not request.user.is_authenticated():
		return HttpResponseRedirect('/sign-in/')
	
	message=None

	pk = decrypt_text(article_name)
	art_info=None
	art_auths=None
	assigned_eddie = None
	invited_eddie  = None
	eds_decision  = None
	try:
		art_info = Article.objects.get(id__exact=pk)
		art_auths = ArticleAuthor.objects.filter( article = art_info )
		art_files = ArticleFile.objects.filter( article = art_info )
		
		
		try:
			main_file = ArticleFile.objects.get(article = art_info, main=True)
		except ArticleFile.DoesNotExist or ArticleFile:
			main_file=None	
		
		if EditorDecision.objects.filter(article=art_info).exists():
			eds_decision = EditorDecision.objects.filter(article=art_info, decided=True).latest('date_decided')

		try:
			assigned_eddie = AssignEditor.objects.get(article = art_info, is_accepted=True)
		except AssignEditor.DoesNotExist or AssignEditor:
			assigned_eddie = None
			invited_eddie = AssignEditor.objects.filter(article = art_info, is_accepted=False)
			
		revs = User.objects.filter(groups__id__exact=2)
		
		reviewers_list =[]

		for x in revs:
			chk=ReviewDetails.objects.filter(reviewer= x,article=art_info).exists()
			if not chk:
				rev_info=ReviewDetails.objects.filter(reviewer= x)
				h = {
					'reviewers_name': x.first_name +" "+x.last_name,
					'reviewer_info': x,
					'done_review':rev_info.filter(is_done=True).count(),
					'active_review':rev_info.filter(invitation_accepted=True, is_done=False, is_active=True).count(),
				}

				reviewers_list.append(h)
		
		submit_reviewers=ReviewDetails.objects.filter(article=art_info)
		# message=art_info.title +'- Article .<a href="/articles/articles-list/"> Click here</a> to see article list'


	except Article.DoesNotExist or Article:
		message='Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
		return HttpResponse(message)
	
	if 'joumsy_message' in request.session:
		message = request.session.get('joumsy_message')
		del request.session['joumsy_message']

			

	return render(
		request,
		'journals/jms_article_info.html',
		{
			'system_name': 'Submission InReview',
			'art_info':art_info,
			'author_list': art_auths,
			'art_files_list': art_files,
			'reviewers_list': reviewers_list,
			'message':message,
			'art_review':'active',
			'assigned_eddie':assigned_eddie,
			'invited_eddie':invited_eddie,
			'submit_reviewers':submit_reviewers,
			'eds_decision':eds_decision,
			'main_file':main_file,

		}
	)
예제 #20
0
def assign_accept_editor(request):
	edie = request.GET.get('ass_editor')

	edie_id = decrypt_text(edie)

	if not request.user.is_authenticated():
		return HttpResponseRedirect('/sign-in/')
	
	message = ""
	dt = datetime.datetime.now()
	art_info = None
	outs = None
	chk = False
	eddie =None
	try:
		with transaction.atomic():			
			try:

				eddie = AssignEditor.objects.get(id=edie_id)
				chk=True

				has_assigned=hasAssignedEditor(eddie.article,'article')
					
				if not has_assigned:
					eddie.is_accepted=True
					eddie.save()
					print('asdasd---',eddie.assoc_editor.username)
					art_log= ArticleSubmissionLog(
						creator = request.user,
						# desc of work done
						work_desc = 'Accepted role - Assigned Editor -'+ eddie.assoc_editor.username +' - to article -'+ str( eddie.article.id),
						# dictionary of model and id
						att_obj = str(eddie.id)+'-'+'AssignEditor',
					)

					art_log.save()
					
					outs={
						'success':'yes',
						'art_title':eddie.article.title,
						'ass_edit':eddie.assoc_editor.first_name+', '+eddie.assoc_editor.last_name,
						'ass_edit_info':eddie.id,
						'art_ident':encrypt_text(str(eddie.article.id)),
					}

					
				else:
					chk=False
					message="Article has been assigned"

			except AssignEditor.DoesNotExist or AssignEditor:
				chk= False
	except:
		print('accept-assign not saved. error occurs on data insertion!')

	if chk:
		data=outs
	else: 
		data={
			'success':'no',
			'message': message,
		}

	json_response = json.dumps(data)
	return HttpResponse(json_response, content_type="application/json")
예제 #21
0
def assign_editor(request):
	art_det = request.GET.get('art_curr')
	edie = request.GET.get('ass_editor')
	enddate = request.GET.get('date_due')

	edie_id = decrypt_text(edie)
	pk= decrypt_text(art_det)

	if not request.user.is_authenticated():
		return HttpResponseRedirect('/sign-in/')
	
	message=""
	dt = datetime.datetime.now()
	art_info=None
	outs=None
	chk=False
	# try:
	# 	with transaction.atomic():

	try:
		eddie = User.objects.get(id=edie_id)
		chk=True
		print('Getting User editor Info')
		try:
			art_info = Article.objects.get(id__exact=pk)
			print('Getting article Info')
			has_assigned=hasAssignedEditor(art_info,'article')
			
			if not has_assigned:
				accept= False

				if eddie.id == request.user.id:
					accept= True
					# article has been assigned notify other user

				assign_eddie = AssignEditor(
				    assoc_editor   = eddie,
				    article     =   art_info,
				    date_assigned = dt,
				    can_edit = True,
				    can_review = True,
				    date_notified = dt,
				    assigned_by = request.user,
				    is_accepted = accept,
				)
				assign_eddie.save()

				art_info.state='REV'
				art_info.date_review_start=dt
				art_info.save()

				# print(get_editor_assign_template('assign_editor', eddie.id ,art_info.id, request.user))

				# notif_message= JMSMessage(
				# 	creator     = request.user,
				# 	target    = eddie
				# 	content      = 'content',
				# 	title    = 'title',
				# 	is_opened = False,
				# 	date_sent = dt,
				# 	# date_update = 
				# )
				
				# notif_message.save()
				
				outs={
					'success':'yes',
					'art_title':art_info.title,
					'ass_edit':eddie.first_name+', '+eddie.last_name,
					'ass_edit_info':eddie.id,
					'art_ident':encrypt_text(str(art_info.id)),
				}

				art_log= ArticleSubmissionLog(
					creator = request.user,
					# desc of work done
					work_desc = 'Assigned Editor '+ eddie.username +' to article '+ str( art_info.id),
					# dictionary of model and id
					att_obj = str(eddie.id)+'-'+'AssignEditor',
				)

				art_log.save()
			
			else:
				chk=False
				message="Article has been assigned"


		except Article.DoesNotExist or Article:
			message='Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
			return HttpResponse(message)

	except User.DoesNotExist or User:
		chk= False
	# except:			
	# 	message ='Unable to assign Editor. Some error occurs.'
	# 	print('Unable to process editor decision. Some error occurs.')

	if chk:
		data=outs
	else: 
		data={
			'success':'no',
			'message': message,
		}

	json_response = json.dumps(data)
	return HttpResponse(json_response, content_type="application/json")
예제 #22
0
def assign_reviewer(request):

	temp_key = request.GET.get('sub_info')
	rev = request.GET.get('assigned_reviewer')
	enddate = request.GET.get('date_due')
	
	rev_id = decrypt_text(rev)
	pk= decrypt_text(temp_key)

	if not request.user.is_authenticated():
		return HttpResponseRedirect('/sign-in/')
	
	message=""
	dt = datetime.datetime.now()
	outs=None
	rev_user=None
	try:
		art_info = Article.objects.get(id__exact=pk)
		rev_exists=False

		if User.objects.filter(id__exact=rev_id).exists():
			rev_user=User.objects.get(id__exact=rev_id)

			rev_exists = ReviewDetails.objects.filter(article=art_info, reviewer=rev_user).exists()

			if not rev_exists:
				rev = ReviewDetails(
					article       = art_info,
					reviewer         = rev_user,
					date_start = 		dt,
					date_ended =		enddate,
					review_rounds  =	1,
					is_done         = False,
					assigned_by = request.user,
					is_invited = True,
					date_invited= dt,
					is_active = False,
				)

				rev.save()

				outs={
					'success':'yes',
					'submit_reviewer': rev.reviewer.last_name[0].upper()+', '+rev.reviewer.first_name,
					'submission':rev.article.title.title(),
				}

			else:
				outs={
					'success':'no',
					'message':'Review already assigned to this submission'
				}
		else:
			outs={
					'success':'no',
					'message':'User info does not exist.'
				}

	except Article.DoesNotExist or Article:
		outs={
				'success':'no',
				'message':'Invalid Data.<a href="articles/articles-list/"> Click here</a> to see article list'
			}
		
		return HttpResponseRedirect("message")
	# user = request.user
	# a =  User.objects.get(username=user)

	data=outs

	json_response = json.dumps(data)
	return HttpResponse(json_response, content_type="application/json")