def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.layout = QtGui.QVBoxLayout(self)
        self.comboWidget = AddDelComboWidget(self)
        self.layout.addWidget(self.comboWidget)

        self.singleDurationWidget = SingleDurationWidget(self)
        self.layout.addWidget(self.singleDurationWidget)
        self.addComandContributer(self.singleDurationWidget)

        self.comboWidget.objectSelected.connect(self.singleDurationWidget.setDuration)
class DurationsWidget(QtGui.QWidget):
    commandIssued = QtCore.pyqtSignal(QtGui.QUndoCommand)
    criticalCommandIssued = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.layout = QtGui.QVBoxLayout(self)
        self.comboWidget = AddDelComboWidget(self)
        self.layout.addWidget(self.comboWidget)

        self.singleDurationWidget = SingleDurationWidget(self)
        self.layout.addWidget(self.singleDurationWidget)
        self.addComandContributer(self.singleDurationWidget)

        self.comboWidget.objectSelected.connect(self.singleDurationWidget.setDuration)

    def setPopulationModel(self, model):
        self.singleDurationWidget.setPopulationModel(model)

    def setInstitution(self, institution):
        m = DurationsModel(institution)
        self._set_model(m)

    def _set_model(self, model):
        self.comboWidget.setModel(model)
        if len(model.durations) > 0:
            self.singleDurationWidget.setDuration(model.durations[0])
        self.addComandContributer(model)

    @QtCore.pyqtSlot(QtGui.QUndoCommand)
    def emitCommand(self, command):
        self.commandIssued.emit(command)

    @QtCore.pyqtSlot()
    def emitCriticalCommand(self):
        self.criticalCommandIssued.emit()

    def addComandContributer(self, otherModel):
        otherModel.commandIssued.connect(self.emitCommand)
        otherModel.criticalCommandIssued.connect(self.emitCriticalCommand)