def questions_by_type(self, question_type):
     results = set()
     for obj in self.values():
         if not IQuestion.providedBy(obj):
             continue
         if obj.get_question_type() == question_type:
             results.add(obj)
     return results
 def translation_count(self, lang):
     translated = 0
     for question in self.values():
         if not IQuestion.providedBy(question):
             continue
         question_texts = question.get_question_text()
         if question_texts.get(lang, u"").strip():
             translated += 1
     return translated
 def schema(self):
     schema = createSchema(self.context.schemas['edit'])
     #FIXME: Translations up for refactoring!
     if ISurvey.providedBy(self.context):
         self.trans_util.add_translations_schema(schema['heading_translations'], self.context)
     if ISurveySection.providedBy(self.context):
         self.trans_util.add_translations_schema(schema['heading_translations'], self.context)
         self.trans_util.add_translations_schema(schema['description_translations'], self.context, richtext=True)
     if IQuestion.providedBy(self.context):
         self.trans_util.add_translations_schema(schema['question_text'], self.context)
     if IChoice.providedBy(self.context):
         add_translations_node(schema, 'title_translations')
     if ITextSection.providedBy(self.context):
         add_translations_node(schema, 'title_translations', based_on = 'title')
         add_translations_node(schema, 'description_translations', based_on = 'description')
     return schema