def route_submit(self, client, source=None, language=None, **kwargs): """ Handles student responses via AJAX and a srvice program. """ # User must choose language if not language: if self.language is None: client.dialog('<p class="dialog-text">%s</p>' % _('Please select the correct language')) return language = self.language else: language = programming_language(language) # Bug with <ace-editor>? if not source or source == '\x01\x01': client.dialog('<p class="dialog-text">%s</p>' % _('Internal error: please send it again!')) return super().route_submit( client=client, language=language, source=source, )
def load_from_markio(self, file_data): """ Load question parameters from Markio file. """ data = markio.parse(file_data) # Load simple data from markio self.title = data.title or self.title self.short_description = (data.short_description or self.short_description) self.timeout = data.timeout or self.timeout self.author_name = data.author or self.author_name self.iospec_source = data.tests or self.iospec_source # Load main description # noinspection PyUnresolvedReferences self.body = markdown_to_blocks(data.description) # Add answer keys answer_keys = OrderedDict() for (lang, answer_key) in data.answer_key.items(): language = programming_language(lang) key = self.answers.create(question=self, language=language, source=answer_key) answer_keys[lang] = key for (lang, placeholder) in data.placeholder.items(): if placeholder is None: continue try: answer_keys[lang].placeholder = placeholder except KeyError: language = ProgrammingLanguage.objects.get(lang) self.answer_keys.create(question=self, language=language, placeholder=placeholder) self.__answers = list(answer_keys.values())
def python(): return models.programming_language('python')
def language(self, value): self.response_data['language'] = programming_language(value).ref
def clang(): return models.programming_language('c')