Skip to content
This repository was archived by the owner on Aug 11, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions ocl_web/apps/collections/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,14 @@ def form_valid(self, form):
class CollectionAddReferenceView(CollectionsBaseView, TemplateView):
template_name = "collections/collection_add_reference.html"

print 'CollectionReferencesView'

def get_context_data(self, *args, **kwargs):
print 'CollectionReferencesView get_context_data'
print 'CollectionReferencesView self: ', self
print 'CollectionReferencesView args: ', args
print 'CollectionReferencesView kwargs: ', kwargs

context = super(CollectionAddReferenceView, self).get_context_data(*args, **kwargs)

self.get_args()
Expand All @@ -569,9 +576,13 @@ def get_context_data(self, *args, **kwargs):
context['url_params'] = self.request.GET
context['collection'] = collection

print 'CollectionReferencesView results: ', results.json()
print 'CollectionReferencesView context: ', context

return context

def get_success_url(self):
print 'CollectionReferencesView get_success_url'
""" Return URL for redirecting browser """
if self.from_org:
return reverse('collection-references',
Expand All @@ -583,6 +594,7 @@ def get_success_url(self):
kwargs={"user": self.request.user.username, 'collection': self.collection_id})

def post(self, request, *args, **kwargs):
print 'CollectionReferencesView post'
self.get_args()
data = json.loads(request.body)
api = OclApi(self.request, debug=True)
Expand Down Expand Up @@ -610,6 +622,10 @@ def post(self, request, *args, **kwargs):
if added_result_count > 0 and self.show_warning(request.GET.get('warning', 'hide')):
self.add_version_warning_to_session(data, request, results)

print 'CollectionReferencesView post data: ', data
print 'CollectionReferencesView post results: ', results
print 'CollectionReferencesView post added_result_count: ', added_result_count

return HttpResponse(
json.dumps({
'update_results': results,
Expand All @@ -620,6 +636,7 @@ def post(self, request, *args, **kwargs):
)

def add_version_warning_to_session(self, data, request, results):
print 'CollectionReferencesView add_version_warning_to_session'
if self.adding_single_reference(data):
# Version Information is getting from api but it isn't getting from form
expression_from_form = data['expressions'][0]
Expand All @@ -630,42 +647,53 @@ def add_version_warning_to_session(self, data, request, results):
self.send_message_by_source_version_information_for_multiple_reference(request, data)

def adding_head_version(self, data):
print 'CollectionReferencesView adding_head_version'
return data['uri'].split('/')[5] == 'HEAD'

def adding_single_reference(self, data):
print 'CollectionReferencesView adding_single_reference'
return data.has_key('expressions')

def show_warning(self, flag):
print 'CollectionReferencesView show_warning'
return flag == 'show'

def version_specified(self, expression):
print 'CollectionReferencesView version_specified'
return len(expression.split('/')) == 9

def get_reference_type_in_expression(self, expression):
print 'CollectionReferencesView get_reference_type_in_expression'
return expression.split('/')[5]

def get_source_in_expression(self, expression):
print 'CollectionReferencesView get_source_in_expression'
return expression.split('/')[4]

def get_mnemonic_in_expression(self, expression):
print 'CollectionReferencesView get_mnemonic_in_expression'
return expression.split('/')[6]

def get_version_information_in_expression(self, expression):
print 'CollectionReferencesView get_version_information_in_expression'
return expression.split('/')[7]

def added_without_version_information_warning_message_by_reference_type(self, reference_type, source, mnemonic, version_number):
print 'CollectionReferencesView added_without_version_information_warning_message_by_reference_type'
if reference_type == 'concepts':
return ENTERED_WITHOUT_VERSION_NUMBER_FOR_CONCEPT.format(source, mnemonic, version_number)
else:
return ENTERED_WITHOUT_VERSION_NUMBER_FOR_MAPPING.format(source, mnemonic, version_number)

def added_with_version_information_success_message_by_reference_type(self, reference_type, source, mnemonic, version_number):
print 'CollectionReferencesView added_with_version_information_success_message_by_reference_type'
if reference_type == 'concepts':
return ENTERED_WITH_VERSION_NUMBER_FOR_CONCEPT.format(source, mnemonic, version_number)
else:
return ENTERED_WITH_VERSION_NUMBER_FOR_MAPPING.format(source, mnemonic, version_number)

def send_message_by_version_information_for_single_reference(self, request, expression_from_form, expression_from_api):
print 'CollectionReferencesView send_message_by_version_information_for_single_reference '
reference_type = self.get_reference_type_in_expression(expression_from_api)
mnemonic = self.get_mnemonic_in_expression(expression_from_api)
source = self.get_source_in_expression(expression_from_api)
Expand All @@ -678,6 +706,7 @@ def send_message_by_version_information_for_single_reference(self, request, expr
version_number)

def send_message_by_source_version_information_for_multiple_reference(self, request, data):
print 'CollectionReferencesView send_message_by_source_version_information_for_multiple_reference'
if self.adding_head_version(data):
request.session['add_reference_warning'] = POSTED_HEAD_VERSION_OF_SOURCE
else:
Expand Down
36 changes: 34 additions & 2 deletions ocl_web/apps/concepts/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ def clean_concept_id(self):
from django.forms.formsets import formset_factory

#from libs.ocl import OclApi
from apps.core.views import (_get_locale_list, _get_concept_class_list, _get_datatype_list, _get_name_type_list, _get_description_type_list)
from apps.core.views import (_get_locale_list, _get_concept_class_list, _get_org_or_user_sources_list,
_get_datatype_list, _get_name_type_list, _get_description_type_list)
from libs.ocl import OclApi


Expand Down Expand Up @@ -89,7 +90,6 @@ class ConceptNewMappingForm(forms.Form):
widget=forms.TextInput(attrs={'placeholder': "e.g. UUID from external system"}))



class ConceptNewForm(forms.Form):
"""
Concept new form
Expand Down Expand Up @@ -133,6 +133,38 @@ def __init__(self, *args, **kwargs):
widget=forms.TextInput(attrs={'placeholder': "e.g. UUID from external system"}))


class ConceptForkForm(forms.Form):
original_concept_id = None

def __init__(self, *args, **kwargs):
super(ConceptForkForm, self).__init__(*args, **kwargs)
self.fields['concept_id'].widget.attrs['placeholder'] = kwargs['initial']['original_concept_id']
self.fields['sources'].choices = [(s, s['id']) for s in _get_org_or_user_sources_list(**kwargs)]

# TODO: Validate concept ID is unique
concept_id = forms.CharField(
label=_('Concept ID'),
max_length=256,
required=True,
help_text=_('<small>Alphanumeric characters, hyphens and periods are allowed.<br/>'
'Your fork concept will live at: '
'<span id="new_concept_base_url">/[owner-type]/[owner]/sources/'
'[source]/concepts/</span>'
'<span id="new_concept_id" style="font-weight:bold;">'
'[concept-id]</span>/</small>'),
widget=forms.TextInput(attrs={'placeholder': original_concept_id}))

sources = forms.ChoiceField(
choices=[],
label=_('source'),
required=True
)
Fork_Mappings = forms.BooleanField(
label=_('Fork mappings'),
required=False
)


class ConceptEditForm(ConceptNewForm):
"""
Concept edit form
Expand Down
Loading