def create_resource_from_suggestion(request, suggestion_id): user = request.user suggestion = get_object_or_404(SuggestResource, id=suggestion_id) output = {} user_data = additional_user_info(request) resource = Resource(title=suggestion.title, link=suggestion.link, abstract=suggestion.abstract, created_by=request.user) resource.save() for tag in suggestion.keywords.split(','): keyword = Keyword(content_object=resource, text=tag.strip(), user_recomendation=True) keyword.save() suggestion.status = 1 suggestion.save() output['alert'] = _("Resource created.") output['alerttype'] = "alert-success" return redirect('main.views.create_edit_resource', resource_id=resource.id)
def frontend_urls(request): """ Our javascript needs a global dictionary of url templates like: FRONTEND_URLS = { 'reorder_section_node': '/casebooks/_CASEBOOK_ID/sections/_SECTION_ORDINALS/reorder/_CHILD_ORDINALS/' } These can't be generated directly from reverse() because reverse('reorder_section_node', args=['_CASEBOOK_ID', ...]) doesn't resolve -- we need to pass in args as ints or ordinals or Casebook instances or whatever. This function calls reverse() with valid inputs for each url template we need, and then replaces the strings in the resulting url with the desired placeholders. """ global _frontend_urls if not _frontend_urls: urls_in = { # key: [url_name, reverse_args, strings, placeholders] 'reorder_section_node': [ 'reorder_node', [1, "2", "3"], ["1", "2", "3"], ['_CASEBOOK_ID', '_SECTION_ORDINALS', '_CHILD_ORDINALS'] ], 'reorder_casebook_node': [ 'reorder_node', [1, "2"], ["1", "2"], ['_CASEBOOK_ID', '_CHILD_ORDINALS'] ], 'new_section_or_resource': ['new_section_or_resource', [1], ["1"], ['$CASEBOOK_ID']], 'search': ['search', [], [], []], 'new_casebook': ['new_casebook', [], [], []], 'section': ['section', [1, "2"], ["1", "2"], ['CASEBOOK_ID', 'SECTION_ID']], 'casebook': ['casebook', [1], ["1"], ['_ID']], 'export_casebook': [ 'export', [Casebook(id=1), "docx"], ["1", "docx"], ['_ID', '_FORMAT'] ], 'export_section': [ 'export', [Section(id=1), "docx"], ["1", "docx"], ['_ID', '_FORMAT'] ], 'export_resource': [ 'export', [Resource(id=1), "docx"], ["1", "docx"], ['_ID', '_FORMAT'] ], } urls_out = {} for key, [url_name, reverse_args, strings, placeholders] in urls_in.items(): url = reverse(url_name, args=reverse_args) for string, placeholder in zip(strings, placeholders): url = url.replace(str(string), placeholder, 1) urls_out[key] = url _frontend_urls = mark_safe(json.dumps(urls_out)) return {'frontend_urls': _frontend_urls}
def _resources_from_paths(paths): paths = [ os.readlink(path) if os.path.islink(path) else path for path in paths ] exists = list( Resource.objects.filter(path__in=paths).values_list('path', flat=True)) needs_create = list(set(paths).difference(exists)) paths = [] return [Resource(path=p) for p in needs_create]
from main import db, create_app from main.models import (Resource, Users) app = create_app() app.app_context().push() db.drop_all() db.create_all() resource = Resource() resource.ResName = "hello" db.session.add(resource) db.session.commit() user = Users() user.username = "******" user.age = 22 db.session.add(user) db.session.commit() user = Users() user.username = "******" user.age = 21 db.session.add(user) db.session.commit()