Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
context_object_name = 'catalog'
permission_required = 'questions.view_catalog'
def render_to_response(self, context, **response_kwargs):
format = self.kwargs.get('format')
if format == 'xml':
serializer = ExportSerializer(context['catalog'])
xmldata = XMLRenderer().render(serializer.data)
response = HttpResponse(prettify_xml(xmldata), content_type="application/xml")
response['Content-Disposition'] = 'filename="%s.xml"' % context['catalog'].key
return response
else:
return render_to_format(self.request, format, context['catalog'].title, 'questions/catalog_export.html', context)
class CatalogImportXMLView(ModelPermissionMixin, DetailView):
permission_required = ('questions.add_catalog', 'questions.change_catalog', 'questions.delete_catalog')
success_url = reverse_lazy('catalogs')
parsing_error_template = 'core/import_parsing_error.html'
def get(self, request, *args, **kwargs):
return HttpResponseRedirect(self.success_url)
def post(self, request, *args, **kwargs):
# context = self.get_context_data(**kwargs)
try:
request.FILES['uploaded_file']
except KeyError:
return HttpResponseRedirect(self.success_url)
else:
tempfilename = handle_uploaded_file(request.FILES['uploaded_file'])
from django.urls import reverse_lazy
from rdmo.core.exports import prettify_xml
from rdmo.core.imports import handle_uploaded_file, read_xml_file
from rdmo.core.views import ModelPermissionMixin, CSRFViewMixin
from rdmo.core.utils import get_model_field_meta, render_to_format
from .imports import import_questions
from .models import Catalog, Section, QuestionSet, Question
from .serializers.export import CatalogSerializer as ExportSerializer
from .renderers import XMLRenderer
log = logging.getLogger(__name__)
class CatalogsView(ModelPermissionMixin, CSRFViewMixin, TemplateView):
template_name = 'questions/catalogs.html'
permission_required = 'questions.view_catalog'
def get_context_data(self, **kwargs):
context = super(CatalogsView, self).get_context_data(**kwargs)
context['export_formats'] = settings.EXPORT_FORMATS
context['meta'] = {
'Catalog': get_model_field_meta(Catalog),
'Section': get_model_field_meta(Section),
'QuestionSet': get_model_field_meta(QuestionSet),
'Question': get_model_field_meta(Question),
}
return context
class CatalogExportView(ModelPermissionMixin, DetailView):
class DomainView(ModelPermissionMixin, CSRFViewMixin, TemplateView):
template_name = 'domain/domain.html'
permission_required = 'domain.view_attribute'
def get_context_data(self, **kwargs):
context = super(DomainView, self).get_context_data(**kwargs)
context['export_formats'] = settings.EXPORT_FORMATS
context['meta'] = {
'Attribute': get_model_field_meta(Attribute)
}
return context
class DomainExportView(ModelPermissionMixin, ListView):
model = Attribute
context_object_name = 'attributes'
permission_required = 'domain.view_attribute'
def render_to_response(self, context, **response_kwargs):
format = self.kwargs.get('format')
if format == 'xml':
queryset = Attribute.objects.get_cached_trees()
serializer = ExportSerializer(queryset, many=True)
xmldata = XMLRenderer().render(serializer.data)
response = HttpResponse(prettify_xml(xmldata), content_type="application/xml")
response['Content-Disposition'] = 'filename="domain.xml"'
return response
elif format[:3] == 'csv':
if format == 'csvcomma':
delimiter = ','
class TasksView(ModelPermissionMixin, CSRFViewMixin, TemplateView):
template_name = 'tasks/tasks.html'
permission_required = 'tasks.view_task'
def get_context_data(self, **kwargs):
context = super(TasksView, self).get_context_data(**kwargs)
context['export_formats'] = settings.EXPORT_FORMATS
context['meta'] = {
'Task': get_model_field_meta(Task)
}
return context
class TasksExportView(ModelPermissionMixin, ListView):
model = Task
context_object_name = 'tasks'
permission_required = 'tasks.view_task'
def render_to_response(self, context, **response_kwargs):
format = self.kwargs.get('format')
if format == 'xml':
serializer = ExportSerializer(context['tasks'], many=True)
xmldata = XMLRenderer().render(serializer.data)
response = HttpResponse(prettify_xml(xmldata), content_type="application/xml")
response['Content-Disposition'] = 'filename="tasks.xml"'
return response
else:
return render_to_format(self.request, format, _('Tasks'), 'tasks/tasks_export.html', context)
from django.urls import reverse_lazy
from rdmo.core.exports import prettify_xml
from rdmo.core.imports import handle_uploaded_file, read_xml_file
from rdmo.core.views import ModelPermissionMixin, CSRFViewMixin
from rdmo.core.utils import get_model_field_meta, render_to_format
from .imports import import_options
from .models import OptionSet, Option
from .serializers.export import OptionSetSerializer as ExportSerializer
from .renderers import XMLRenderer
log = logging.getLogger(__name__)
class OptionsView(ModelPermissionMixin, CSRFViewMixin, TemplateView):
template_name = 'options/options.html'
permission_required = 'options.view_option'
def get_context_data(self, **kwargs):
context = super(OptionsView, self).get_context_data(**kwargs)
context['export_formats'] = settings.EXPORT_FORMATS
context['meta'] = {
'OptionSet': get_model_field_meta(OptionSet),
'Option': get_model_field_meta(Option)
}
return context
class OptionsExportView(ModelPermissionMixin, ListView):
model = OptionSet
context_object_name = 'optionsets'
class ViewsView(ModelPermissionMixin, CSRFViewMixin, TemplateView):
template_name = 'views/views.html'
permission_required = 'views.view_view'
def get_context_data(self, **kwargs):
context = super(ViewsView, self).get_context_data(**kwargs)
context['export_formats'] = settings.EXPORT_FORMATS
context['meta'] = {
'View': get_model_field_meta(View)
}
return context
class ViewsExportView(ModelPermissionMixin, ListView):
model = View
context_object_name = 'views'
permission_required = 'views.view_view'
def render_to_response(self, context, **response_kwargs):
format = self.kwargs.get('format')
if format == 'xml':
serializer = ExportSerializer(context['views'], many=True)
xmldata = XMLRenderer().render(serializer.data)
response = HttpResponse(prettify_xml(xmldata), content_type="application/xml")
response['Content-Disposition'] = 'filename="views.xml"'
return response
else:
return render_to_format(self.request, format, _('Views'), 'views/views_export.html', context)
context_object_name = 'conditions'
permission_required = 'conditions.view_condition'
def render_to_response(self, context, **response_kwargs):
format = self.kwargs.get('format')
if format == 'xml':
serializer = ExportSerializer(context['conditions'], many=True)
xmldata = XMLRenderer().render(serializer.data)
response = HttpResponse(prettify_xml(xmldata), content_type="application/xml")
response['Content-Disposition'] = 'filename="conditions.xml"'
return response
else:
return render_to_format(self.request, format, _('Conditions'), 'conditions/conditions_export.html', context)
class ConditionsImportXMLView(ModelPermissionMixin, ListView):
permission_required = ('conditions.add_condition', 'conditions.change_condition', 'conditions.delete_condition')
success_url = reverse_lazy('conditions')
parsing_error_template = 'core/import_parsing_error.html'
def get(self, request, *args, **kwargs):
return HttpResponseRedirect(self.success_url)
def post(self, request, *args, **kwargs):
try:
request.FILES['uploaded_file']
except KeyError:
return HttpResponseRedirect(self.success_url)
else:
tempfilename = handle_uploaded_file(request.FILES['uploaded_file'])
tree = read_xml_file(tempfilename)
context_object_name = 'tasks'
permission_required = 'tasks.view_task'
def render_to_response(self, context, **response_kwargs):
format = self.kwargs.get('format')
if format == 'xml':
serializer = ExportSerializer(context['tasks'], many=True)
xmldata = XMLRenderer().render(serializer.data)
response = HttpResponse(prettify_xml(xmldata), content_type="application/xml")
response['Content-Disposition'] = 'filename="tasks.xml"'
return response
else:
return render_to_format(self.request, format, _('Tasks'), 'tasks/tasks_export.html', context)
class TasksImportXMLView(ModelPermissionMixin, ListView):
permission_required = ('tasks.add_task', 'tasks.change_task', 'tasks.delete_task')
success_url = reverse_lazy('tasks')
parsing_error_template = 'core/import_parsing_error.html'
def get(self, request, *args, **kwargs):
return HttpResponseRedirect(self.success_url)
def post(self, request, *args, **kwargs):
# context = self.get_context_data(**kwargs)
try:
request.FILES['uploaded_file']
except KeyError:
return HttpResponseRedirect(self.success_url)
else:
tempfilename = handle_uploaded_file(request.FILES['uploaded_file'])
template_name = 'questions/catalogs.html'
permission_required = 'questions.view_catalog'
def get_context_data(self, **kwargs):
context = super(CatalogsView, self).get_context_data(**kwargs)
context['export_formats'] = settings.EXPORT_FORMATS
context['meta'] = {
'Catalog': get_model_field_meta(Catalog),
'Section': get_model_field_meta(Section),
'QuestionSet': get_model_field_meta(QuestionSet),
'Question': get_model_field_meta(Question),
}
return context
class CatalogExportView(ModelPermissionMixin, DetailView):
model = Catalog
context_object_name = 'catalog'
permission_required = 'questions.view_catalog'
def render_to_response(self, context, **response_kwargs):
format = self.kwargs.get('format')
if format == 'xml':
serializer = ExportSerializer(context['catalog'])
xmldata = XMLRenderer().render(serializer.data)
response = HttpResponse(prettify_xml(xmldata), content_type="application/xml")
response['Content-Disposition'] = 'filename="%s.xml"' % context['catalog'].key
return response
else:
return render_to_format(self.request, format, context['catalog'].title, 'questions/catalog_export.html', context)
context_object_name = 'optionsets'
permission_required = 'options.view_option'
def render_to_response(self, context, **response_kwargs):
format = self.kwargs.get('format')
if format == 'xml':
serializer = ExportSerializer(context['optionsets'], many=True)
xmldata = XMLRenderer().render(serializer.data)
response = HttpResponse(prettify_xml(xmldata), content_type="application/xml")
response['Content-Disposition'] = 'filename="options.xml"'
return response
else:
return render_to_format(self.request, format, _('Options'), 'options/options_export.html', context)
class OptionsImportXMLView(ModelPermissionMixin, ListView):
permission_required = ('options.add_option', 'options.change_option', 'options.delete_option')
success_url = reverse_lazy('options')
parsing_error_template = 'core/import_parsing_error.html'
def get(self, request, *args, **kwargs):
return HttpResponseRedirect(self.success_url)
def post(self, request, *args, **kwargs):
try:
request.FILES['uploaded_file']
except KeyError:
return HttpResponseRedirect(self.success_url)
else:
tempfilename = handle_uploaded_file(request.FILES['uploaded_file'])
tree = read_xml_file(tempfilename)