Updating file by latest version

This commit is contained in:
Carlos Lopez 2020-07-17 09:49:47 -06:00
parent a10ef9066d
commit 419d06c95b
2 changed files with 17 additions and 6 deletions

View File

@ -45,6 +45,9 @@ PB_STUDY_DETAILS_URL = environ.get('PB_STUDY_DETAILS_URL', default=PB_BASE_URL +
LDAP_URL = environ.get('LDAP_URL', default="ldap.virginia.edu").strip('/') # No trailing slash or http:// LDAP_URL = environ.get('LDAP_URL', default="ldap.virginia.edu").strip('/') # No trailing slash or http://
LDAP_TIMEOUT_SEC = int(environ.get('LDAP_TIMEOUT_SEC', default=1)) LDAP_TIMEOUT_SEC = int(environ.get('LDAP_TIMEOUT_SEC', default=1))
# Github token
GH_TOKEN = '6cbd5f3a1764a8d15b27d66f64ac80ae13b393a9'
# Email configuration # Email configuration
DEFAULT_SENDER = 'askresearch@virginia.edu' DEFAULT_SENDER = 'askresearch@virginia.edu'
FALLBACK_EMAILS = ['askresearch@virginia.edu', 'sartographysupport@googlegroups.com'] FALLBACK_EMAILS = ['askresearch@virginia.edu', 'sartographysupport@googlegroups.com']

View File

@ -7,6 +7,7 @@ from flask_admin.actions import action
from flask_admin.contrib import sqla from flask_admin.contrib import sqla
from flask_admin.contrib.sqla import ModelView from flask_admin.contrib.sqla import ModelView
from github import Github, UnknownObjectException from github import Github, UnknownObjectException
from sqlalchemy import desc
from werkzeug.utils import redirect from werkzeug.utils import redirect
from jinja2 import Markup from jinja2 import Markup
@ -60,7 +61,8 @@ class FileView(AdminModelView):
@action('publish', 'Publish', 'Are you sure you want to publish this file(s)?') @action('publish', 'Publish', 'Are you sure you want to publish this file(s)?')
def action_publish(self, ids): def action_publish(self, ids):
# TODO: Move token to settings and replace docs repo # TODO: Move token to settings and replace docs repo
_github = Github('d082288d6192b45b2f8cefcefc1a0a2806554c9e') gh_token = app.config['GH_TOKEN']
_github = Github(gh_token)
repo = _github.get_user().get_repo('crispy-fiesta') repo = _github.get_user().get_repo('crispy-fiesta')
for file_id in ids: for file_id in ids:
@ -83,20 +85,26 @@ class FileView(AdminModelView):
@action('update', 'Update', 'Are you sure you want to update this file(s)?') @action('update', 'Update', 'Are you sure you want to update this file(s)?')
def action_update(self, ids): def action_update(self, ids):
_github = Github('d082288d6192b45b2f8cefcefc1a0a2806554c9e') gh_token = app.config['GH_TOKEN']
_github = Github(gh_token)
repo = _github.get_user().get_repo('crispy-fiesta') repo = _github.get_user().get_repo('crispy-fiesta')
for file_id in ids: for file_id in ids:
file_data_model = FileDataModel.query.filter_by(file_model_id=file_id).first() file_data_model = FileDataModel.query.filter_by(
file_model_id=file_id
).order_by(
desc(FileDataModel.version)
).first()
try: try:
repo_file = repo.get_contents(file_data_model.file_model.name) repo_file = repo.get_contents(file_data_model.file_model.name)
except UnknownObjectException: except UnknownObjectException:
# Add message indicating file is not in the repo # Add message indicating file is not in the repo
pass pass
else: else:
file_data_model.data = repo_file.content import pdb; pdb.set_trace()
db.session.add(file_data_model) file_data_model.data = repo_file.decoded_content
db.session.commit() self.session.add(file_data_model)
self.session.commit()
def json_formatter(view, context, model, name): def json_formatter(view, context, model, name):