mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-04 04:12:45 +00:00 
			
		
		
		
	Bring back community update 2/x
This commit is contained in:
		@@ -71,55 +71,55 @@ def get_stopwords():
 | 
			
		||||
    response_data = stopwords
 | 
			
		||||
    return response_data, 202
 | 
			
		||||
 | 
			
		||||
# @bp.route('/<hashid:corpus_id>/generate-share-link', methods=['POST'])
 | 
			
		||||
# @corpus_follower_permission_required('MANAGE_FOLLOWERS')
 | 
			
		||||
# @content_negotiation(consumes='application/json', produces='application/json')
 | 
			
		||||
# def generate_corpus_share_link(corpus_id):
 | 
			
		||||
#     data = request.json
 | 
			
		||||
#     if not isinstance(data, dict):
 | 
			
		||||
#         abort(400)
 | 
			
		||||
#     expiration = data.get('expiration')
 | 
			
		||||
#     if not isinstance(expiration, str):
 | 
			
		||||
#         abort(400)
 | 
			
		||||
#     role_name = data.get('role')
 | 
			
		||||
#     if not isinstance(role_name, str):
 | 
			
		||||
#         abort(400)
 | 
			
		||||
#     expiration_date = datetime.strptime(expiration, '%b %d, %Y')
 | 
			
		||||
#     cfr = CorpusFollowerRole.query.filter_by(name=role_name).first()
 | 
			
		||||
#     if cfr is None:
 | 
			
		||||
#         abort(400)
 | 
			
		||||
#     corpus = Corpus.query.get_or_404(corpus_id)
 | 
			
		||||
#     token = current_user.generate_follow_corpus_token(corpus.hashid, role_name, expiration_date)
 | 
			
		||||
#     corpus_share_link = url_for(
 | 
			
		||||
#         'corpora.follow_corpus',
 | 
			
		||||
#         corpus_id=corpus_id,
 | 
			
		||||
#         token=token,
 | 
			
		||||
#         _external=True
 | 
			
		||||
#     )
 | 
			
		||||
#     response_data = {
 | 
			
		||||
#         'message': 'Corpus share link generated',
 | 
			
		||||
#         'category': 'corpus',
 | 
			
		||||
#         'corpusShareLink': corpus_share_link
 | 
			
		||||
#     }
 | 
			
		||||
#     return response_data, 200
 | 
			
		||||
@bp.route('/<hashid:corpus_id>/generate-share-link', methods=['POST'])
 | 
			
		||||
@corpus_follower_permission_required('MANAGE_FOLLOWERS')
 | 
			
		||||
@content_negotiation(consumes='application/json', produces='application/json')
 | 
			
		||||
def generate_corpus_share_link(corpus_id):
 | 
			
		||||
    data = request.json
 | 
			
		||||
    if not isinstance(data, dict):
 | 
			
		||||
        abort(400)
 | 
			
		||||
    expiration = data.get('expiration')
 | 
			
		||||
    if not isinstance(expiration, str):
 | 
			
		||||
        abort(400)
 | 
			
		||||
    role_name = data.get('role')
 | 
			
		||||
    if not isinstance(role_name, str):
 | 
			
		||||
        abort(400)
 | 
			
		||||
    expiration_date = datetime.strptime(expiration, '%b %d, %Y')
 | 
			
		||||
    cfr = CorpusFollowerRole.query.filter_by(name=role_name).first()
 | 
			
		||||
    if cfr is None:
 | 
			
		||||
        abort(400)
 | 
			
		||||
    corpus = Corpus.query.get_or_404(corpus_id)
 | 
			
		||||
    token = current_user.generate_follow_corpus_token(corpus.hashid, role_name, expiration_date)
 | 
			
		||||
    corpus_share_link = url_for(
 | 
			
		||||
        'corpora.follow_corpus',
 | 
			
		||||
        corpus_id=corpus_id,
 | 
			
		||||
        token=token,
 | 
			
		||||
        _external=True
 | 
			
		||||
    )
 | 
			
		||||
    response_data = {
 | 
			
		||||
        'message': 'Corpus share link generated',
 | 
			
		||||
        'category': 'corpus',
 | 
			
		||||
        'corpusShareLink': corpus_share_link
 | 
			
		||||
    }
 | 
			
		||||
    return response_data, 200
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# @bp.route('/<hashid:corpus_id>/is_public', methods=['PUT'])
 | 
			
		||||
# @corpus_owner_or_admin_required
 | 
			
		||||
# @content_negotiation(consumes='application/json', produces='application/json')
 | 
			
		||||
# def update_corpus_is_public(corpus_id):
 | 
			
		||||
#     is_public = request.json
 | 
			
		||||
#     if not isinstance(is_public, bool):
 | 
			
		||||
#         abort(400)
 | 
			
		||||
#     corpus = Corpus.query.get_or_404(corpus_id)
 | 
			
		||||
#     corpus.is_public = is_public
 | 
			
		||||
#     db.session.commit()
 | 
			
		||||
#     response_data = {
 | 
			
		||||
#         'message': (
 | 
			
		||||
#             f'Corpus "{corpus.title}" is now'
 | 
			
		||||
#             f' {"public" if is_public else "private"}'
 | 
			
		||||
#         ),
 | 
			
		||||
#         'category': 'corpus'
 | 
			
		||||
#     }
 | 
			
		||||
#     return response_data, 200
 | 
			
		||||
@bp.route('/<hashid:corpus_id>/is_public', methods=['PUT'])
 | 
			
		||||
@corpus_owner_or_admin_required
 | 
			
		||||
@content_negotiation(consumes='application/json', produces='application/json')
 | 
			
		||||
def update_corpus_is_public(corpus_id):
 | 
			
		||||
    is_public = request.json
 | 
			
		||||
    if not isinstance(is_public, bool):
 | 
			
		||||
        abort(400)
 | 
			
		||||
    corpus = Corpus.query.get_or_404(corpus_id)
 | 
			
		||||
    corpus.is_public = is_public
 | 
			
		||||
    db.session.commit()
 | 
			
		||||
    response_data = {
 | 
			
		||||
        'message': (
 | 
			
		||||
            f'Corpus "{corpus.title}" is now'
 | 
			
		||||
            f' {"public" if is_public else "private"}'
 | 
			
		||||
        ),
 | 
			
		||||
        'category': 'corpus'
 | 
			
		||||
    }
 | 
			
		||||
    return response_data, 200
 | 
			
		||||
 
 | 
			
		||||
@@ -68,20 +68,19 @@ def corpus(corpus_id):
 | 
			
		||||
            corpus=corpus,
 | 
			
		||||
            cfr=cfr,
 | 
			
		||||
            cfrs=cfrs,
 | 
			
		||||
            users = users
 | 
			
		||||
            users=users
 | 
			
		||||
        )
 | 
			
		||||
    if (current_user.is_following_corpus(corpus) or corpus.is_public):
 | 
			
		||||
        abort(404)
 | 
			
		||||
        # cfas = CorpusFollowerAssociation.query.filter(Corpus.id == corpus_id, CorpusFollowerAssociation.follower_id != corpus.user.id).all()
 | 
			
		||||
        # return render_template(
 | 
			
		||||
        #     'corpora/public_corpus.html.j2',
 | 
			
		||||
        #     title=corpus.title,
 | 
			
		||||
        #     corpus=corpus,
 | 
			
		||||
        #     cfrs=cfrs,
 | 
			
		||||
        #     cfr=cfr,
 | 
			
		||||
        #     cfas=cfas,
 | 
			
		||||
        #     users = users
 | 
			
		||||
        # )
 | 
			
		||||
        cfas = CorpusFollowerAssociation.query.filter(Corpus.id == corpus_id, CorpusFollowerAssociation.follower_id != corpus.user.id).all()
 | 
			
		||||
        return render_template(
 | 
			
		||||
            'corpora/public_corpus.html.j2',
 | 
			
		||||
            title=corpus.title,
 | 
			
		||||
            corpus=corpus,
 | 
			
		||||
            cfrs=cfrs,
 | 
			
		||||
            cfr=cfr,
 | 
			
		||||
            cfas=cfas,
 | 
			
		||||
            users=users
 | 
			
		||||
        )
 | 
			
		||||
    abort(403)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user