class DQuestFinalTC(DQuestFinal):
    def __init__(self, defered, automatique, parent):
        DQuestFinal.__init__(self, defered, automatique, parent)

        disciplines = [v for k, v in sorted(texts_TC.DISCIPLINES.viewitems())]
        disciplines.insert(0, le2mtrans(u"Choose"))
        disciplines.append(le2mtrans(u"Not in the list above"))
        self._study_topic.ui.comboBox.clear()
        self._study_topic.ui.comboBox.addItems(disciplines)

        niveaux = [v for k, v in sorted(texts_TC.ETUDES_ANNEES.viewitems())]
        niveaux.insert(0, le2mtrans(u"Choose"))
        niveaux.append(le2mtrans(u"Not in the list above"))
        self._study_level.ui.comboBox.clear()
        self._study_level.ui.comboBox.addItems(niveaux)

        self._religion_place.setVisible(False)
        self._religion_place.ui.comboBox.setCurrentIndex(1)
        self._religion_name.setVisible(False)
        self._religion_name.ui.comboBox.setCurrentIndex(1)
        self._religion_belief.setVisible(False)
        self._religion_belief.ui.comboBox.setCurrentIndex(1)

        residence = [v for k, v in sorted(texts_TC.COUNTRY_RESIDENCE.viewitems())]
        residence.insert(0, le2mtrans(u"Choose"))
        residence.append(le2mtrans(u"Not in the list above"))
        self._residence = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Country of residence"), items=residence)
        self._gridlayout.addWidget(self._residence, 0, 2)

        # profession
        professions = [v for k, v in sorted(texts_TC.PROFESSIONS.viewitems())]
        professions.insert(0, le2mtrans(u"Choose"))
        professions.append(le2mtrans(u"Not in the list above"))
        self._profession = WCombo(
            label=trans_TC(u"Your profession"), parent=self,
            automatique=self._automatique, items=professions)
        self._gridlayout.addWidget(self._profession, 2, 3)
        self._profession.setEnabled(False)
        self._study.ui.radioButton_1.toggled.connect(
            lambda _: self._enable_widgets(self._study.get_checkedbutton()==1,
                                           self._profession))

        # language skills
        skills = [v for k, v in sorted(texts_TC.LANGUAGE_SKILLS.viewitems())]
        skills.insert(0, le2mtrans(u"Choose"))

        # luxembourgish
        self._luxembourgish_speak = WCombo(
            parent=self, automatique=self._automatique,
            label=u"<strong>" + trans_TC(u"Luxembourgish") + u"</strong>  " +
                  trans_TC(u"Speak"), items=skills)
        self._gridlayout.addWidget(self._luxembourgish_speak, 7, 0)
        self._luxembourgish_understrand = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Understand"), items=skills)
        self._gridlayout.addWidget(self._luxembourgish_understrand, 7, 1)
        self._luxembourgish_read = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Read"), items=skills)
        self._gridlayout.addWidget(self._luxembourgish_read, 7, 2)
        self._luxembourgish_write = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Write"), items=skills)
        self._gridlayout.addWidget(self._luxembourgish_write, 7, 3)

        # french
        self._french_speak = WCombo(
            parent=self, automatique=self._automatique,
            label=u"<strong>" + trans_TC(u"French") + u"</strong>  " +
                  trans_TC(u"Speak"), items=skills)
        self._gridlayout.addWidget(self._french_speak, 8, 0)
        self._french_understrand = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Understand"), items=skills)
        self._gridlayout.addWidget(self._french_understrand, 8, 1)
        self._french_read = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Read"), items=skills)
        self._gridlayout.addWidget(self._french_read, 8, 2)
        self._french_write = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Write"), items=skills)
        self._gridlayout.addWidget(self._french_write, 8, 3)

        # german
        self._german_speak = WCombo(
            parent=self, automatique=self._automatique,
            label=u"<strong>" + trans_TC(u"German") + u"</strong>  " +
                  trans_TC(u"Speak"), items=skills)
        self._gridlayout.addWidget(self._german_speak, 9, 0)
        self._german_understrand = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Understand"), items=skills)
        self._gridlayout.addWidget(self._german_understrand, 9, 1)
        self._german_read = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Read"), items=skills)
        self._gridlayout.addWidget(self._german_read, 9, 2)
        self._german_write = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Write"), items=skills)
        self._gridlayout.addWidget(self._german_write, 9, 3)

        # english
        self._english_speak = WCombo(
            parent=self, automatique=self._automatique,
            label=u"<strong>" + trans_TC(u"English") + u"</strong>  " +
                  trans_TC(u"Speak"), items=skills)
        self._gridlayout.addWidget(self._english_speak, 10, 0)
        self._english_understrand = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Understand"), items=skills)
        self._gridlayout.addWidget(self._english_understrand, 10, 1)
        self._english_read = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Read"), items=skills)
        self._gridlayout.addWidget(self._english_read, 10, 2)
        self._english_write = WCombo(
            parent=self, automatique=self._automatique,
            label=trans_TC(u"Write"), items=skills)
        self._gridlayout.addWidget(self._english_write, 10, 3)

        self.setMinimumSize(0, 0)
        self.setMaximumSize(16777215, 16777215)
        self.adjustSize()
        self.setFixedSize(self.size())

    def _accept(self):
        try:
            self._timer_automatique.stop()
        except AttributeError:
            pass
        inputs = self._get_inputs()
        if type(inputs) is dict:

            try:

                inputs["residence"] = self._residence.get_currentindex()
                inputs["luxembourgish_speak"] = self._luxembourgish_speak.get_currentindex()
                inputs["luxembourgish_understand"] = self._luxembourgish_understrand.get_currentindex()
                inputs["luxembourgish_read"] = self._luxembourgish_read.get_currentindex()
                inputs["luxembourgish_write"] = self._luxembourgish_write.get_currentindex()
                inputs["french_speak"] = self._french_speak.get_currentindex()
                inputs["french_understand"] = self._french_understrand.get_currentindex()
                inputs["french_read"] = self._french_read.get_currentindex()
                inputs["french_write"] = self._french_write.get_currentindex()
                inputs["german_speak"] = self._german_speak.get_currentindex()
                inputs["german_understand"] = self._german_understrand.get_currentindex()
                inputs["german_read"] = self._german_read.get_currentindex()
                inputs["german_write"] = self._german_write.get_currentindex()
                inputs["english_speak"] = self._english_speak.get_currentindex()
                inputs["english_understand"] = self._english_understrand.get_currentindex()
                inputs["english_read"] = self._english_read.get_currentindex()
                inputs["english_write"] = self._english_write.get_currentindex()
                if inputs["etudiant"] == 1:  # not student
                    inputs["profession"] = self._profession.get_currentindex()

            except ValueError:
                return QtGui.QMessageBox.warning(
                    self, le2mtrans(u"Warning"),
                    le2mtrans(u"You must answer to all the questions"))

            if not self._automatique:
                confirm = QtGui.QMessageBox.question(
                    self, le2mtrans(u"Confirmation"),
                    le2mtrans(u"Do you confirm your answers?"),
                    QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)
                if confirm != QtGui.QMessageBox.Yes:
                    return

            logger.info(u"Send back: {}".format(inputs))
            self.accept()
            self._defered.callback(inputs)

        else:
            return