00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 import gettext
00031 from Koo.Common import Common
00032 from Koo import Rpc
00033 
00034 from PyQt4.QtCore import *
00035 from PyQt4.QtGui import *
00036 from PyQt4.uic import *
00037 
00038 (FieldPreferencesDialogUi, FieldPreferencesDialogBase) = loadUiType( Common.uiPath('field_preferences.ui') ) 
00039 
00040 
00041 
00042 class FieldPreferencesDialog( QDialog, FieldPreferencesDialogUi ):
00043         
00044         def __init__(self, field, name, model, value, dependance=[], parent=None):
00045                 QDialog.__init__( self, parent )
00046                 FieldPreferencesDialogUi.__init__(self)
00047                 self.setupUi(self)
00048 
00049                 self.uiFieldName.setText( name )
00050                 self.uiDomain.setText( model )
00051                 self.uiDefaultValue.setText( (value and unicode(value)) or '/' )
00052 
00053                 self.model = model
00054                 self.field = field
00055                 self.value = value
00056                 frameLayout = QVBoxLayout( self.uiFrame )
00057                 self.widgets = {}
00058                 for (fname, fvalue, rname, rvalue) in dependance:
00059                         w = QCheckBox(self)
00060                         w.setText( fname + ' = ' + unicode(rname) )
00061                         self.widgets[(fvalue,rvalue)] = w
00062                         frameLayout.addWidget( w )
00063                 if not len(dependance):
00064                         frameLayout.addWidget(QLabel(_('<center>Always applicable!</center>'), self))
00065                 self.connect( self.pushAccept, SIGNAL('clicked()'), self.slotAccept )
00066 
00067         def slotAccept(self):
00068                 deps = False
00069                 for x in self.widgets.keys():
00070                         if self.widgets[x].isChecked():
00071                                 deps = x[0] + '=' + str(x[1])   
00072                                 break
00073                 Rpc.session.execute('/object', 'execute', 'ir.values', 'set', 'default', deps, self.field, [(self.model,False)], self.value, True, False, False, self.uiOnlyForYou.isChecked())
00074                 self.accept()
00075