def test_propgridprops08(self): pg.PG_PROP_STATIC_CHOICES p1 = pg.EnumProperty() p2 = pg.EnumProperty(label='label', name='name', labels=['one', 'two', 'three'], values=[1, 2, 3])
def initialize_fixed_properties(self, pg): pg.Append(wxpg.StringProperty(self.SLIDE_RANGE)) pg.Append( wxpg.EnumProperty(self.IMAGE_TYPE, labels=["GIF", "PNG"], value=1)) pg.Append(wxpg.DirProperty(self.OUTPUT_DIR)) pg.Append(wxpg.BoolProperty(self.CLEANUP_OUTPUT_DIR))
def getPropertyForType(self, stg, pid, dt): if dt == "str": pgp = wxpg.StringProperty(pid, value="") elif dt == "float": pgp = wxpg.FloatProperty(pid, value=0.0) elif dt in ["int", "extruder"]: pgp = wxpg.IntProperty(pid, value=0) elif dt == "bool": pgp = wxpg.BoolProperty(pid, value=False) elif dt == "enum": opts = [str(x) for x in stg.getOptions()] pgp = wxpg.EnumProperty(pid, labels=opts, values=range(len(opts)), value=0) else: self.log("taking default action for unknown data type: %s" % dt) pgp = wxpg.StringProperty(pid, value="") return pgp
def _create_plot_properties(self): pg = self.property_grid_1 # pg.AddPage("Page 1 - Plot Settings") # if pages are needed, use PropertyGridManger instead dir_path = os.path.dirname(os.path.realpath(__file__)) pg.Append(wxpg.PropertyCategory("1 - Basic Properties")) pg.Append(wxpg.StringProperty(label="Title", value="Title")) pg.Append(wxpg.StringProperty(label="X Label", value="X Label")) pg.Append(wxpg.StringProperty(label="Y Label", value="Y Label")) pg.Append(wxpg.BoolProperty(label="Grid", value=True)) pg.SetPropertyAttribute(id="Grid", attrName="UseCheckbox", value=True) pg.Append(wxpg.PropertyCategory("2 - Data")) # https://discuss.wxpython.org/t/wxpython-pheonix-4-0-2-question-regarding-multichoiceproperty-and-setting-the-selection-of-the-choices/30044 # https://discuss.wxpython.org/t/how-to-set-propertygrid-values/30152/4 pg.Append( wxpg.EnumProperty( label="Scale", labels=['Linear', 'SemilogX', 'SemilogY', 'LogLog'])) pg.Append( wxpg.EnumProperty(label="X Data", name="X Data", labels=['NaN'], values=[0])) pg.Append( wxpg.MultiChoiceProperty(label="Y Data", name='Y Data', choices=['NaN'], value=['NaN'])) pg.Append( wxpg.EnumProperty(label="Data Labels", name="Data Labels", labels=['NaN'], values=[0])) pg.Append(wxpg.PropertyCategory("3 - Optional Static Plot Overlay")) pg.Append(wxpg.FileProperty(label="Overlay Plot", value=rf"{dir_path}")) pg.Append(wxpg.EnumProperty(label="X Axis Variable", labels=[''])) pg.Append(wxpg.EnumProperty(label="Y Axis Variable", labels=[''])) pg.Append(wxpg.PropertyCategory("4 - Advanced Properties")) pg.Append(wxpg.ArrayStringProperty(label="xLim", value=['0', '100'])) pg.Append(wxpg.ArrayStringProperty(label="yLim", value=['0', '100'])) pg.Append(wxpg.DateProperty(label="Date", value=wx.DateTime.Now())) pg.Append(wxpg.ColourProperty(label="Line Colour", value='#1f77b4')) pg.Append(wxpg.FontProperty(label="Font", value=self.GetFont())) pg.Grid.FitColumns()
def initialize_fixed_properties(self, pg): pg.Append(wxpg.PropertyCategory(_("1 - Bible #1"))) versions = bibfileformat.enum_versions( GenerateBibleVerseUI.current_bible_format) pg.Append( wxpg.EnumProperty(self.BIBLE_VERSION1, labels=versions, value=0)) pg.Append(wxpg.StringProperty(self.MAIN_VERSE_NAME1)) pg.Append(wxpg.StringProperty(self.EACH_VERSE_NAME1)) pg.Append(wxpg.PropertyCategory(_("2 - Bible #2"))) pg.Append( wxpg.EnumProperty(self.BIBLE_VERSION2, labels=versions, value=-1)) pg.Append(wxpg.StringProperty(self.MAIN_VERSE_NAME2)) pg.Append(wxpg.StringProperty(self.EACH_VERSE_NAME2)) pg.Append(wxpg.PropertyCategory(_("3 - Other Bible specification"))) pg.Append(wxpg.StringProperty(self.MAIN_VERSES)) pg.Append(wxpg.StringProperty(self.ADDITONAL_VERSES)) pg.Append(wxpg.StringProperty(self.REPEAT_RANGE))
def AddProperty(self, property, parent_property=None): self.inAddProperty += 1 # add a cad.property, optionally to an existing wx.PGProperty if property.GetType() == cad.PROPERTY_TYPE_STRING: new_prop = wxpg.StringProperty(property.GetTitle(), value=property.GetString()) elif property.GetType() == cad.PROPERTY_TYPE_LONG_STRING: #new_prop = wxpg.LongStringProperty("MultipleButtons", wxpg.PG_LABEL) new_prop = wxpg.StringProperty(property.GetTitle(), value=property.GetString()) elif property.GetType() == cad.PROPERTY_TYPE_DOUBLE: new_prop = wxpg.FloatProperty(property.GetTitle(), value=property.GetDouble()) elif property.GetType() == cad.PROPERTY_TYPE_LENGTH: new_prop = wxpg.FloatProperty(property.GetTitle(), value=property.GetDouble() / cad.GetUnits()) elif property.GetType() == cad.PROPERTY_TYPE_INT: new_prop = wxpg.IntProperty(property.GetTitle(), value=property.GetInt()) elif property.GetType() == cad.PROPERTY_TYPE_COLOR: col = property.GetColor() wcol = wx.Colour(col.red, col.green, col.blue) new_prop = wxpg.ColourProperty(property.GetTitle(), value=wcol) elif property.GetType() == cad.PROPERTY_TYPE_CHOICE: new_prop = wxpg.EnumProperty(property.GetTitle(), labels=property.GetChoices(), value=property.GetInt()) elif property.GetType() == cad.PROPERTY_TYPE_CHECK: new_prop = wxpg.BoolProperty(property.GetTitle(), value=property.GetBool()) new_prop.SetAttribute(wxpg.PG_BOOL_USE_CHECKBOX, True) elif property.GetType() == cad.PROPERTY_TYPE_LIST: new_prop = wxpg.StringProperty(property.GetTitle(), value='<composed>') elif property.GetType() == cad.PROPERTY_TYPE_FILE: new_prop = wxpg.FileProperty(property.GetTitle(), value=property.GetString()) else: wx.MessageBox('invalid property type: ' + str(property.GetType())) return if not property.editable: new_prop.ChangeFlag(wxpg.PG_PROP_READONLY, True) self.Append(parent_property, new_prop, property) if property.GetType() == cad.PROPERTY_TYPE_LIST: plist = property.GetProperties() for p in plist: self.AddProperty(p, new_prop) new_prop.ChangeFlag(wxpg.PG_PROP_COLLAPSED, True) elif property.GetType() == cad.PROPERTY_TYPE_LONG_STRING: # Change property to use editor created in the previous code segment #self.pg.SetPropertyEditor("MultipleButtons", self.multiButtonEditor) self.pg.SetPropertyEditor(new_prop, "TrivialPropertyEditor") self.inAddProperty -= 1
def _create_dummy_content(self): # some dummy content from the wxPython demo import wx.propgrid as wxpg pg = self.widget pg.AddPage( "Page 1 - Dummy" ) pg.Append( wxpg.PropertyCategory("1 - Basic Properties") ) pg.Append( wxpg.StringProperty("String",value="Some Text") ) sp = pg.Append( wxpg.StringProperty('StringProperty w/ Password flag', value='ABadPassword') ) sp.SetAttribute('Hint', 'This is a hint') sp.SetAttribute('Password', True) pg.Append( wxpg.IntProperty("Int",value=123) ) pg.Append( wxpg.FloatProperty("Float",value=123.4) ) pg.Append( wxpg.BoolProperty("Bool",value=True) ) pg.Append( wxpg.BoolProperty("Bool_with_Checkbox",value=True) ) pg.SetPropertyAttribute( "Bool_with_Checkbox", "UseCheckbox", True) pg.Append( wxpg.PropertyCategory("2 - More Properties") ) pg.Append( wxpg.LongStringProperty("LongString", value="This is a\nmulti-line string\nwith\ttabs\nmixed\tin.")) pg.Append( wxpg.DirProperty("Dir",value=r"C:\Windows") ) pg.Append( wxpg.FileProperty("File",value=r"C:\Windows\system.ini") ) pg.Append( wxpg.ArrayStringProperty("ArrayString",value=['A','B','C']) ) pg.Append( wxpg.EnumProperty("Enum","Enum", ['wxPython Rules', 'wxPython Rocks', 'wxPython Is The Best'], [10,11,12], 0) ) pg.Append( wxpg.EditEnumProperty("EditEnum","EditEnumProperty", ['A','B','C'], [0,1,2], "Text Not in List") ) pg.Append( wxpg.PropertyCategory("3 - Advanced Properties") ) pg.Append( wxpg.DateProperty("Date",value=wx.DateTime.Now()) ) pg.Append( wxpg.FontProperty("Font",value=self.widget.GetFont()) ) pg.Append( wxpg.ColourProperty("Colour", value=self.widget.GetBackgroundColour()) ) pg.Append( wxpg.SystemColourProperty("SystemColour") ) pg.Append( wxpg.ImageFileProperty("ImageFile") ) pg.Append( wxpg.MultiChoiceProperty("MultiChoice", choices=['wxWidgets','QT','GTK+']) ) pg.Append( wxpg.PropertyCategory("4 - Additional Properties") ) pg.Append( wxpg.IntProperty("IntWithSpin",value=256) ) pg.SetPropertyEditor("IntWithSpin","SpinCtrl") pg.SetPropertyAttribute( "File", wxpg.PG_FILE_SHOW_FULL_PATH, 0 ) pg.SetPropertyAttribute( "File", wxpg.PG_FILE_INITIAL_PATH, r"C:\Program Files\Internet Explorer" ) if compat.IS_PHOENIX: pg.SetPropertyAttribute( "Date", wxpg.PG_DATE_PICKER_STYLE, wx.adv.DP_DROPDOWN|wx.adv.DP_SHOWCENTURY ) pg.AddPage( "Page 2 - Almost Empty" ) pg.Append( wxpg.PropertyCategory("1 - Basic Properties") ) pg.Append( wxpg.StringProperty("String 2",value="Some Text") )
def _init_dependencies(self): self.propgrid.Append(wxpg.PropertyCategory("Extensions support", "dependencies")) extensions = coreaux_api.get_enabled_installed_addons()['Extensions'] self.dependencies = core_api.get_database_dependencies(self.filename, ignored=True) del self.dependencies[None] for ext in extensions: if coreaux_api.import_extension_info(ext).affects_database: propname = "dependencies.{}".format(ext) prop = wxpg.EnumProperty(ext, propname, ('Enabled', 'Disabled (remind)', 'Disabled (ignore)')) prop.SetClientData(ext) self.onchange_actions[propname] = self._change_dependencies self.propgrid.Append(prop) self.refresh_dependency(ext)
def initialize_fixed_properties(self, pg): pg.Append( wxpg.EnumProperty(self.FILE_TYPE, labels=self.FILE_TYPE_LIST, value=2)) pg.Append(wxpg.PropertyCategory(_("1 - Slide settings"))) pg.Append(wxpg.StringProperty(self.SLIDE_REPEAT_RANGE)) pg.Append(wxpg.StringProperty(self.SLIDE_SEPARATOR_SLIDES)) pg.Append(wxpg.PropertyCategory(_("2 - Lyric settings"))) pg.Append(wxpg.StringProperty(self.LYRIC_REPEAT_RANGE)) pg.Append(wxpg.StringProperty(self.LYRIC_SEPARATOR_SLIDES)) pg.Append(wxpg.StringProperty(self.LYRIC_PATTERN)) pg.Append(wxpg.BoolProperty(self.ARCHIVE_LYRIC_FILES)) pg.Append(wxpg.PropertyCategory( _("3 - List of lyric files to insert")))
def set_solver(self, solver): """Sets current solver and builds UI basing on its properties. :param Solver solver: Solver to show properties of. """ # Set the solver self.solver = solver # Reset the properties self.reset() # Skip if there is no solver or solver has no properties if not self.solver or not self.solver.properties: return # For each property for i, p in enumerate(self.solver.properties): # Create property object with appropriate type if p.type is int: prop = wxpg.IntProperty() elif p.type is float: prop = wxpg.FloatProperty() elif issubclass(p.type, Enum): prop = wxpg.EnumProperty() labels = list(map(lambda c: c.name, p.type)) values = list(map(lambda c: c.value, p.type)) prop_choices = wxpg.PGChoices(labels=labels, values=values) prop.SetChoices(prop_choices) # Set label and value prop.SetLabel(p.name) prop.SetValue(p.default) prop.SetDefaultValue(p.default) prop.SetAttribute('property_idx', i) # And append the property object self.Append(prop) # Fit columns and layout the parent self.FitColumns() self.GetParent().Layout()
def fill_property_grid(self): print('Filling property grid') pair = self.wxprop_layerconf_pair pg = self.property_grid_1 lc = self.layer_config pg.Append(wxpg.PropertyCategory("1 - Basic Properties")) if len(lc.keys()): for p in lc.keys(): # print(' property <<%s>>'%p) proper = lc[p] # Конфигурационный объект потомок CommonProp value = lc[p]() curprop = None # p - parametr name # value - default value of parametr if isinstance(proper, layers_opt.BoolProp): # дискретный параметр curprop = pg.Append(wxpg.BoolProperty(p, value=value)) # объект wx elif isinstance(proper, layers_opt.RealRangeProp): # вещественный параметр curprop = pg.Append(wxpg.FloatProperty(p, value=value)) elif isinstance(proper, layers_opt.IntRangeProp): # целочисленый параметр curprop = pg.Append(wxpg.IntProperty(p, value=value)) elif isinstance(proper, layers_opt.SelectOneProp): # выбор один из многих choices = wxpg.PGChoices() for choice in proper: choices.Add(label=choice, value=wxpg.PG_INVALID_VALUE) default_coice = choices.GetIndicesForStrings([value,])[0] # print(default_coice) curprop = pg.Append(wxpg.EnumProperty(label=p, name=p, choices=choices)) curprop.SetChoiceSelection(default_coice) if curprop is not None: curprop.SetHelpString(proper.__doc__) pair[curprop] = proper # свойство wx, свойство CommonProp else: # no properties print(' No properties') empty_prop = pg.Append(wxpg.StringProperty(label='No editable property', value='May be for a while')) empty_prop.SetHelpString('Nothing to tweek here') pg.Enable(False) print('End of filling property grid')
def add_enum_property(self, name, key, value, status=None, enabled=True, **kwargs): """ Add enumerator property. :param name: :param key: :param value: :param status: status bar string :param enabled: :param kwargs: :return: """ if isinstance(value, tuple): arr_label = [] arr_values = [] for lb, val in value: arr_label.append(lb) arr_values.append(val) else: arr_label = value arr_values = value if kwargs.get('edit'): item = propgrid.EditEnumProperty(name, key, arr_label, arr_values) else: item = propgrid.EnumProperty(name, key, arr_label, arr_values) self.Append(item) if status: self.SetPropertyHelpString(key, status) if enabled: self.EnableProperty(key) else: self.DisableProperty(key) return item
def __init__( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 500,395 ), style = wx.TAB_TRAVERSAL, name = wx.EmptyString ): wx.Panel.__init__ ( self, parent, id = id, pos = pos, size = size, style = style, name = name ) bSizer1 = wx.BoxSizer( wx.VERTICAL ) self.m_propertyGridManager1 = pg.PropertyGridManager(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_DESCRIPTION|wx.propgrid.PG_SPLITTER_AUTO_CENTER|wx.propgrid.PG_TOOLBAR|wx.propgrid.PG_TOOLTIPS|wx.TAB_TRAVERSAL) self.m_propertyGridManager1.SetExtraStyle( wx.propgrid.PG_EX_AUTO_UNSPECIFIED_VALUES|wx.propgrid.PG_EX_MODE_BUTTONS|wx.propgrid.PG_EX_NO_FLAT_TOOLBAR|wx.propgrid.PG_EX_NO_TOOLBAR_DIVIDER ) self.m_propertyGridPage1 = self.m_propertyGridManager1.AddPage( u"Page", wx.ArtProvider.GetBitmap( wx.ART_REPORT_VIEW, wx.ART_BUTTON ) ); self.Item1 = self.m_propertyGridPage1.Append( pg.PropertyCategory( u"Directory of Work", u"Directory of Work" ) ) self.Item2 = self.m_propertyGridPage1.Append( pg.DirProperty( u"Database and Sql files", u"Database and Sql files" ) ) self.Item3 = self.m_propertyGridPage1.Append( pg.DirProperty( u"Utility and Plugin", u"Utility and Plugin" ) ) self.Item4 = self.m_propertyGridPage1.Append( pg.DirProperty( u"Server and Local Network", u"Server and Local Network" ) ) self.m_propertyGridPage1.SetPropertyHelpString( Item4, u"Directory of Local Network that Database and Main File here and other client get Data from it" ) self.Item5 = self.m_propertyGridPage1.Append( pg.DirProperty( u"Other and Temp", u"Other and Temp" ) ) self.Item6 = self.m_propertyGridPage1.Append( pg.PropertyCategory( u"General parameter", u"General parameter" ) ) self.Item7 = self.m_propertyGridPage1.Append( pg.DateProperty( u"Date of Today ", u"Date of Today " ) ) self.Item8 = self.m_propertyGridPage1.Append( pg.EnumProperty( u"Language", u"Language" ) ) self.Item9 = self.m_propertyGridPage1.Append( pg.BoolProperty( u"Show Clock", u"Show Clock" ) ) self.Item10 = self.m_propertyGridPage1.Append( pg.FontProperty( u"Font", u"Font" ) ) self.Item11 = self.m_propertyGridPage1.Append( pg.FlagsProperty( u"Size", u"Size" ) ) self.Item12 = self.m_propertyGridPage1.Append( pg.StringProperty( u"position", u"position" ) ) self.m_propertyGridPage2 = self.m_propertyGridManager1.AddPage( u"Page", wx.ArtProvider.GetBitmap( wx.ART_LIST_VIEW, wx.ART_TOOLBAR ) ); self.Item13 = self.m_propertyGridPage2.Append( pg.PropertyCategory( u"Other Status", u"Other Status" ) ) self.Item14 = self.m_propertyGridPage2.Append( pg.StringProperty( u"Toolbar", u"Toolbar" ) ) self.Item15 = self.m_propertyGridPage2.Append( pg.StringProperty( u"Pan Input", u"Pan Input" ) ) self.Item16 = self.m_propertyGridPage2.Append( pg.StringProperty( u"Pan Status", u"Pan Status" ) ) self.Item17 = self.m_propertyGridPage2.Append( pg.ImageFileProperty( u"Background", u"Background" ) ) self.Item18 = self.m_propertyGridPage2.Append( pg.CursorProperty( u"Cursor", u"Cursor" ) ) self.Item19 = self.m_propertyGridPage2.Append( pg.LongStringProperty( u"Help", u"Help" ) ) bSizer1.Add( self.m_propertyGridManager1, 1, wx.ALL|wx.EXPAND, 5 ) self.SetSizer( bSizer1 ) self.Layout()
def Remplissage(self): listeChamps = [ "{SIGNATAIRE_GENRE}", "{SIGNATAIRE_NOM}", "{SIGNATAIRE_FONCTION}", "{NUM_ATTESTATION}", "{DATE_DEBUT}", "{DATE_FIN}", "{DATE_EDITION}", "{LIEU_EDITION}", "{NOMS_INDIVIDUS}", "{DESTINATAIRE_NOM}", "{DESTINATAIRE_RUE}", "{DESTINATAIRE_VILLE}", "{TOTAL_PERIODE}", "{TOTAL_REGLE}", "{SOLDE_DU}", "{ORGANISATEUR_NOM}", "{ORGANISATEUR_RUE}", "{ORGANISATEUR_CP}", "{ORGANISATEUR_VILLE}", "{ORGANISATEUR_TEL}", "{ORGANISATEUR_FAX}", "{ORGANISATEUR_MAIL}", "{ORGANISATEUR_SITE}", "{ORGANISATEUR_AGREMENT}", "{ORGANISATEUR_SIRET}", "{ORGANISATEUR_APE}", ] # Catégorie self.Append(wxpg.PropertyCategory(_(u"Modèle"))) propriete = wxpg.EnumProperty(label=_(u"Modèle de document"), name="IDmodele", value=0) propriete.SetHelpString( _(u"Sélectionnez le modèle de document à utiliser")) propriete.SetEditor("EditeurComboBoxAvecBoutons") propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.MAJ_modeles() # Catégorie self.Append(wxpg.PropertyCategory(_(u"Signataire"))) propriete = wxpg.EnumProperty(label=_(u"Signataire du document"), name="signataire", value=0) propriete.SetHelpString( _(u"Sélectionnez le signataire du document (à renseigner au préalable dans le paramétrage de l'activité)" )) propriete.SetAttribute("obligatoire", True) propriete.SetAttribute("reinitialisation_interdite", True) self.Append(propriete) self.MAJ_signataires() # Catégorie self.Append(wxpg.PropertyCategory(_(u"Mémorisation"))) # Mémorisation des paramètres propriete = wxpg.BoolProperty(label=_(u"Mémoriser les paramètres"), name="memoriser_parametres", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez mémoriser les paramètres de cette liste" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Répertoire de sauvegarde propriete = wxpg.DirProperty(label=_(u"Répertoire pour copie unique"), name="repertoire_copie", value="") propriete.SetHelpString( _(u"Enregistrer une copie unique de chaque document dans le répertoire sélectionné. Sinon laissez vide ce champ." )) self.Append(propriete) # Catégorie self.Append(wxpg.PropertyCategory(_(u"Titre"))) # Afficher le titre propriete = wxpg.BoolProperty(label=_(u"Afficher le titre"), name="afficher_titre", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher le titre du le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Titre du document"), name="texte_titre", value=_(u"Attestation de présence")) propriete.SetHelpString( _(u"Saisissez le titre du document (Par défaut 'Attestation de présence'). Vous pouvez intégrer les mots-clés suivants : %s" ) % ", ".join(listeChamps)) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.IntProperty(label=_(u"Taille de texte du titre"), name="taille_texte_titre", value=19) propriete.SetHelpString( _(u"Saisissez la taille de texte du titre (29 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_titre", "SpinCtrl") propriete = wxpg.BoolProperty( label=_(u"Afficher la période de facturation"), name="afficher_periode", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher la période de facturation dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.IntProperty( label=_(u"Taille de texte de la période"), name="taille_texte_periode", value=8) propriete.SetHelpString( _(u"Saisissez la taille de texte de la période (8 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_periode", "SpinCtrl") # Catégorie self.Append(wxpg.PropertyCategory(_(u"Tableau des prestations"))) # Affichage condensé ou détaillé propriete = wxpg.EnumProperty( label=_(u"Affichage des prestations"), name="affichage_prestations", labels=[_(u"Détaillé"), _(u"Condensé")], values=[0, 1], value=0) propriete.SetHelpString(_(u"Sélectionnez un type d'affichage")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Intitulés des prestations labels = [ _(u"Intitulé original"), _(u"Intitulé original + état 'Absence injustifiée'"), _(u"Nom du tarif"), _(u"Nom de l'activité") ] propriete = wxpg.EnumProperty(label=_(u"Intitulés des prestations"), name="intitules", labels=labels, values=[0, 1, 2, 3], value=0) propriete.SetHelpString( _(u"Sélectionnez le type d'intitulé à afficher pour les prestations" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur 1 propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 1"), name="couleur_fond_1", value=wx.Colour(204, 204, 255)) propriete.SetHelpString(_(u"Sélectionnez la couleur 1")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur 2 propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 2"), name="couleur_fond_2", value=wx.Colour(234, 234, 255)) propriete.SetHelpString(_(u"Sélectionnez la couleur 2")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Largeur colonne Date propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Date (ou Qté)"), name="largeur_colonne_date", value=50) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Date (50 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_date", "SpinCtrl") # Largeur colonne Montant HT propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Montant HT"), name="largeur_colonne_montant_ht", value=50) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Montant HT (50 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_montant_ht", "SpinCtrl") # Largeur colonne Montant TVA propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Montant TVA"), name="largeur_colonne_montant_tva", value=50) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Montant TVA (50 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_montant_tva", "SpinCtrl") # Largeur colonne Montant TTC propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Montant TTC"), name="largeur_colonne_montant_ttc", value=70) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Montant TTC (70 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_montant_ttc", "SpinCtrl") # Taille de texte du nom de l'individu propriete = wxpg.IntProperty(label=_(u"Taille de texte de l'individu"), name="taille_texte_individu", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte de l'individu (9 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_individu", "SpinCtrl") # Taille de texte du nom de l'activité propriete = wxpg.IntProperty( label=_(u"Taille de texte de l'activité"), name="taille_texte_activite", value=6) propriete.SetHelpString( _(u"Saisissez la taille de texte de l'activité (6 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_activite", "SpinCtrl") # Taille de texte des noms de colonnes propriete = wxpg.IntProperty( label=_(u"Taille de texte des noms de colonnes"), name="taille_texte_noms_colonnes", value=5) propriete.SetHelpString( _(u"Saisissez la taille de texte des noms de colonnes (5 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_noms_colonnes", "SpinCtrl") # Taille de texte des prestations propriete = wxpg.IntProperty( label=_(u"Taille de texte des prestations"), name="taille_texte_prestation", value=7) propriete.SetHelpString( _(u"Saisissez la taille de texte des prestations (7 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_prestation", "SpinCtrl") # Taille de texte des messages propriete = wxpg.IntProperty(label=_(u"Taille de texte des messages"), name="taille_texte_messages", value=7) propriete.SetHelpString( _(u"Saisissez la taille de texte des messages (7 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_messages", "SpinCtrl") # Taille de texte des labels totaux propriete = wxpg.IntProperty( label=_(u"Taille de texte des labels totaux"), name="taille_texte_labels_totaux", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte des labels totaux (9 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_labels_totaux", "SpinCtrl") # Taille de texte des totaux propriete = wxpg.IntProperty( label=_(u"Taille de texte des montants totaux"), name="taille_texte_montants_totaux", value=10) propriete.SetHelpString( _(u"Saisissez la taille de texte des montants totaux (10 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_montants_totaux", "SpinCtrl") # Catégorie self.Append(wxpg.PropertyCategory(_(u"Prestations antérieures"))) # Taille de texte propriete = wxpg.IntProperty( label=_(u"Taille de texte du commentaire"), name="taille_texte_prestations_anterieures", value=5) propriete.SetHelpString( _(u"Saisissez la taille de texte du commentaire de bas de tableaux (5 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_prestations_anterieures", "SpinCtrl") # Texte d'information propriete = wxpg.LongStringProperty( label=_(u"Texte d'information"), name="texte_prestations_anterieures", value= _(u"Des prestations antérieures ont été reportées sur cette attestation." )) propriete.SetHelpString( _(u"Saisissez un texte d'information pour les prestations antérieures" )) self.Append(propriete) # Catégorie self.Append(wxpg.PropertyCategory(_(u"Texte d'introduction"))) propriete = wxpg.LongStringProperty(label=_(u"Texte d'introduction"), name="texte_introduction", value=TEXTE_INTRO) propriete.SetHelpString( _(u"Saisissez un texte d'introduction. Vous pouvez intégrer les mots-clés suivants : %s" ) % ", ".join(listeChamps)) self.Append(propriete) propriete = wxpg.IntProperty( label=_(u"Taille de texte d'introduction"), name="taille_texte_introduction", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte d'introduction (9 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_introduction", "SpinCtrl") propriete = wxpg.EnumProperty(label=_(u"Style de texte introduction"), name="style_texte_introduction", labels=[ _(u"Normal"), _(u"Italique"), "Gras", _(u"Italique + Gras") ], values=[0, 1, 2, 3], value=1) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.ColourProperty( label=_(u"Couleur de fond introduction"), name="couleur_fond_introduction", value=wx.Colour(255, 255, 255)) propriete.SetHelpString( _(u"Sélectionnez une couleur de fond pour le texte d'introduction" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.ColourProperty( label=_(u"Couleur de bord introduction"), name="couleur_bord_introduction", value=wx.Colour(255, 255, 255)) propriete.SetHelpString( _(u"Sélectionnez une couleur de bord pour le texte d'introduction" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.EnumProperty( label=_(u"Alignement du texte d'introduction"), name="alignement_texte_introduction", labels=[_(u"Gauche"), _(u"Centre"), _(u"Droite")], values=[0, 1, 2], value=1) propriete.SetHelpString( _(u"Sélectionnez un type d'alignement pour le texte d'introduction" )) self.Append(propriete) # Catégorie self.Append(wxpg.PropertyCategory(_(u"Texte de conclusion"))) propriete = wxpg.LongStringProperty(label=_(u"Texte de conclusion"), name="texte_conclusion", value=u"") propriete.SetHelpString( _(u"Saisissez un texte de conclusion (Aucun par défaut). Vous pouvez intégrer les mots-clés suivants : %s" ) % ", ".join(listeChamps)) self.Append(propriete) propriete = wxpg.IntProperty(label=_(u"Taille de texte de conclusion"), name="taille_texte_conclusion", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte de conclusion (9 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_conclusion", "SpinCtrl") propriete = wxpg.EnumProperty(label=_(u"Style de texte conclusion"), name="style_texte_conclusion", labels=[ _(u"Normal"), _(u"Italique"), "Gras", _(u"Italique + Gras") ], values=[0, 1, 2, 3], value=0) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.ColourProperty(label=_(u"Couleur de fond conclusion"), name="couleur_fond_conclusion", value=wx.Colour(255, 255, 255)) propriete.SetHelpString( _(u"Sélectionnez une couleur de fond pour le texte de conclusion") ) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.ColourProperty(label=_(u"Couleur de bord conclusion"), name="couleur_bord_conclusion", value=wx.Colour(255, 255, 255)) propriete.SetHelpString( _(u"Sélectionnez une couleur de bord pour le texte de conclusion") ) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.EnumProperty( label=_(u"Alignement du texte de conclusion"), name="alignement_texte_conclusion", labels=[_(u"Gauche"), _(u"Centre"), _(u"Droite")], values=[0, 1, 2], value=0) propriete.SetHelpString( _(u"Sélectionnez un type d'alignement pour le texte de conclusion" )) self.Append(propriete) # Signature self.Append(wxpg.PropertyCategory(_(u"Signature"))) propriete = wxpg.ImageFileProperty(label=_(u"Image de signature"), name="image_signature") propriete.SetHelpString( _(u"Sélectionnez l'image d'une signature à insérer en fin de document" )) self.Append(propriete) propriete = wxpg.IntProperty(label=_(u"Taille de l'image (en %)"), name="taille_image_signature", value=100) propriete.SetHelpString( _(u"Saisissez la taille de l'image en pourcentage (100 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_image_signature", "SpinCtrl") propriete = wxpg.EnumProperty( label=_(u"Alignement de l'image"), name="alignement_image_signature", labels=[_(u"Gauche"), _(u"Centre"), _(u"Droite")], values=[0, 1, 2], value=0) propriete.SetHelpString( _(u"Sélectionnez un type d'alignement pour l'image de signature")) self.Append(propriete)
def Remplissage(self): listeChampsPiedsPages = ["{DATE_JOUR}", "{TITRE_DOCUMENT}", "{NUM_PAGE}", "{NBRE_PAGES}"] # --------------------------- Divers ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Divers")) ) # Inclure les images propriete = wxpg.BoolProperty(label=_(u"Inclure les images"), name="inclure_images", value=True) propriete.SetHelpString(_(u"Cochez cette case pour inclure les images")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Entete de colonne sur chaque page propriete = wxpg.BoolProperty(label=_(u"Afficher les entêtes sur chaque page"), name="entetes_toutes_pages", value=True) propriete.SetHelpString(_(u"Cochez cette case pour afficher les entêtes de colonne sur chaque page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Qualité de l'impression labels = [_(u"Brouillon"), _(u"Basse"), _(u"Moyenne"), _(u"Haute")] propriete = wxpg.EnumProperty(label=_(u"Qualité d'impression"), name="qualite_impression", labels=labels, values=[wx.PRINT_QUALITY_DRAFT, wx.PRINT_QUALITY_LOW, wx.PRINT_QUALITY_MEDIUM, wx.PRINT_QUALITY_HIGH] , value=wx.PRINT_QUALITY_MEDIUM) propriete.SetHelpString(_(u"Sélectionnez la qualité d'impression (Moyenne par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Marges ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Marges")) ) # Gauche propriete = wxpg.IntProperty(label=_(u"Gauche"), name="marge_gauche", value=5) propriete.SetHelpString(_(u"Saisissez une taille de marge")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("marge_gauche", "SpinCtrl") # Droite propriete = wxpg.IntProperty(label=_(u"Droite"), name="marge_droite", value=5) propriete.SetHelpString(_(u"Saisissez une taille de marge")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("marge_droite", "SpinCtrl") # Haut propriete = wxpg.IntProperty(label=_(u"Haut"), name="marge_haut", value=5) propriete.SetHelpString(_(u"Saisissez une taille de marge")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("marge_haut", "SpinCtrl") # Bas propriete = wxpg.IntProperty(label=_(u"Bas"), name="marge_bas", value=5) propriete.SetHelpString(_(u"Saisissez une taille de marge")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("marge_bas", "SpinCtrl") # --------------------------- Quadrillage ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Quadrillage")) ) # Epaisseur de trait propriete = wxpg.FloatProperty(label=_(u"Epaisseur de trait"), name="grille_trait_epaisseur", value=0.25) propriete.SetHelpString(_(u"Saisissez une épaisseur de trait (Par défaut '0.25')")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur de trait propriete = wxpg.ColourProperty(label=_(u"Couleur de trait"), name="grille_trait_couleur", value=wx.BLACK) propriete.SetHelpString(_(u"Sélectionnez une couleur de trait")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Titre de liste ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Titre")) ) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="titre_taille_texte", value=16) propriete.SetHelpString(_(u"Saisissez une taille de texte (16 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("titre_taille_texte", "SpinCtrl") # Style labels = [_(u"Normal"), _(u"Light"), "Gras"] valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD] propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="titre_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_BOLD) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="titre_couleur", value=wx.BLACK) propriete.SetHelpString(_(u"Sélectionnez une couleur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")] propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="titre_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_LEFT) propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Intro ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Introduction")) ) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="intro_taille_texte", value=7) propriete.SetHelpString(_(u"Saisissez une taille de texte (7 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("intro_taille_texte", "SpinCtrl") # Style labels = [_(u"Normal"), _(u"Light"), "Gras"] valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD] propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="intro_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="intro_couleur", value=wx.BLACK) propriete.SetHelpString(_(u"Sélectionnez une couleur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")] propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="intro_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_LEFT) propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Titre de colonne ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Entête de colonne")) ) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="titre_colonne_taille_texte", value=8) propriete.SetHelpString(_(u"Saisissez une taille de texte (8 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("titre_colonne_taille_texte", "SpinCtrl") # Style labels = [_(u"Normal"), _(u"Light"), "Gras"] valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD] propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="titre_colonne_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="titre_colonne_couleur", value=wx.BLACK) propriete.SetHelpString(_(u"Sélectionnez une couleur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")] propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="titre_colonne_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_CENTER) propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur de fond propriete = wxpg.ColourProperty(label=_(u"Couleur de fond"), name="titre_colonne_couleur_fond", value=wx.Colour(240, 240, 240)) propriete.SetHelpString(_(u"Sélectionnez une couleur de fond")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Ligne ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Ligne")) ) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="ligne_taille_texte", value=8) propriete.SetHelpString(_(u"Saisissez une taille de texte (8 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("ligne_taille_texte", "SpinCtrl") # Style labels = [_(u"Normal"), _(u"Light"), "Gras"] valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD] propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="ligne_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="ligne_couleur", value=wx.BLACK) propriete.SetHelpString(_(u"Sélectionnez une couleur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Multilignes autorisé propriete = wxpg.BoolProperty(label=_(u"Autoriser saut à la ligne"), name="ligne_multilignes", value=True) propriete.SetHelpString(_(u"Cochez cette case pour autoriser le saut à la ligne en cas de colonne trop étroite")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # --------------------------- Pied de page ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Pied de page")) ) # Texte de gauche valeur = "{DATE_JOUR}" propriete = wxpg.StringProperty(label=_(u"Texte de gauche"), name="pied_page_texte_gauche", value=valeur) propriete.SetHelpString(_(u"Saisissez le texte de gauche du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s") % (valeur, ", ".join(listeChampsPiedsPages))) self.Append(propriete) # Texte du milieu valeur = "{TITRE_DOCUMENT}" propriete = wxpg.StringProperty(label=_(u"Texte du milieu"), name="pied_page_texte_milieu", value=valeur) propriete.SetHelpString(_(u"Saisissez le texte du milieu du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s") % (valeur, ", ".join(listeChampsPiedsPages))) self.Append(propriete) # Texte de droite valeur = "{NUM_PAGE} / {NBRE_PAGES}" propriete = wxpg.StringProperty(label=_(u"Texte de droite"), name="pied_page_texte_droite", value=valeur) propriete.SetHelpString(_(u"Saisissez le texte de droite du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s") % (valeur, ", ".join(listeChampsPiedsPages))) self.Append(propriete) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="pied_page_taille_texte", value=8) propriete.SetHelpString(_(u"Saisissez une taille de texte (8 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("pied_page_taille_texte", "SpinCtrl") # Style labels = [_(u"Normal"), _(u"Light"), "Gras"] valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD] propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="pied_page_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="pied_page_couleur", value=wx.BLACK) propriete.SetHelpString(_(u"Sélectionnez une couleur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Pied de colonne ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Pied de colonne")) ) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="pied_colonne_taille_texte", value=8) propriete.SetHelpString(_(u"Saisissez une taille de texte (8 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("pied_colonne_taille_texte", "SpinCtrl") # Style labels = [_(u"Normal"), _(u"Light"), "Gras"] valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD] propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="pied_colonne_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="pied_colonne_couleur", value=wx.BLACK) propriete.SetHelpString(_(u"Sélectionnez une couleur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")] propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="pied_colonne_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_CENTER) propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur de fond propriete = wxpg.ColourProperty(label=_(u"Couleur de fond"), name="pied_colonne_couleur_fond", value=wx.Colour(240, 240, 240)) propriete.SetHelpString(_(u"Sélectionnez une couleur de fond")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Pied de liste ------------------------------------------ self.Append( wxpg.PropertyCategory(_(u"Conclusion")) ) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="conclusion_taille_texte", value=7) propriete.SetHelpString(_(u"Saisissez une taille de texte (7 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("conclusion_taille_texte", "SpinCtrl") # Style labels = [_(u"Normal"), _(u"Light"), "Gras"] valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD] propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="conclusion_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_BOLD) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="conclusion_couleur", value=wx.BLACK) propriete.SetHelpString(_(u"Sélectionnez une couleur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")] propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="conclusion_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_LEFT) propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) propriete.SetAttribute("obligatoire", True) self.Append(propriete)
def __init__(self, parent, log): wx.Panel.__init__(self, parent, wx.ID_ANY) self.log = log self.panel = panel = wx.Panel(self, wx.ID_ANY) topsizer = wx.BoxSizer(wx.VERTICAL) # Difference between using PropertyGridManager vs PropertyGrid is that # the manager supports multiple pages and a description box. self.pg = pg = wxpg.PropertyGridManager( panel, style=wxpg.PG_SPLITTER_AUTO_CENTER | wxpg.PG_AUTO_SORT | wxpg.PG_TOOLBAR) # Show help as tooltips pg.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS) pg.Bind(wxpg.EVT_PG_CHANGED, self.OnPropGridChange) pg.Bind(wxpg.EVT_PG_PAGE_CHANGED, self.OnPropGridPageChange) pg.Bind(wxpg.EVT_PG_SELECTED, self.OnPropGridSelect) pg.Bind(wxpg.EVT_PG_RIGHT_CLICK, self.OnPropGridRightClick) # # Let's use some simple custom editor # # NOTE: Editor must be registered *before* adding a property that # uses it. if not getattr(sys, '_PropGridEditorsRegistered', False): pg.RegisterEditor(TrivialPropertyEditor) pg.RegisterEditor(SampleMultiButtonEditor) pg.RegisterEditor(LargeImageEditor) # ensure we only do it once sys._PropGridEditorsRegistered = True # # Add properties # pg.AddPage("Page 1 - Testing All") pg.Append(wxpg.PropertyCategory("1 - Basic Properties")) pg.Append(wxpg.StringProperty("String", value="Some Text")) sp = pg.Append( wxpg.StringProperty('StringProperty w/ Password flag', value='ABadPassword')) sp.SetAttribute('Hint', 'This is a hint') sp.SetAttribute('Password', True) pg.Append(wxpg.IntProperty("Int", value=100)) pg.Append(wxpg.FloatProperty("Float", value=100.0)) pg.Append(wxpg.BoolProperty("Bool", value=True)) boolprop = pg.Append( wxpg.BoolProperty("Bool_with_Checkbox", value=True)) pg.SetPropertyAttribute( "Bool_with_Checkbox", # You can find the property by name, #boolprop, # or give the property object itself. "UseCheckbox", True) # The attribute name and value pg.Append(wxpg.PropertyCategory("2 - More Properties")) pg.Append( wxpg.LongStringProperty( "LongString", value="This is a\nmulti-line string\nwith\ttabs\nmixed\tin.")) pg.Append(wxpg.DirProperty("Dir", value=r"C:\Windows")) pg.Append(wxpg.FileProperty("File", value=r"C:\Windows\system.ini")) pg.Append( wxpg.ArrayStringProperty("ArrayString", value=['A', 'B', 'C'])) pg.Append( wxpg.EnumProperty( "Enum", "Enum", ['wxPython Rules', 'wxPython Rocks', 'wxPython Is The Best'], [10, 11, 12], 0)) pg.Append( wxpg.EditEnumProperty("EditEnum", "EditEnumProperty", ['A', 'B', 'C'], [0, 1, 2], "Text Not in List")) pg.Append(wxpg.PropertyCategory("3 - Advanced Properties")) pg.Append(wxpg.DateProperty("Date", value=wx.DateTime.Now())) pg.Append(wxpg.FontProperty("Font", value=panel.GetFont())) pg.Append( wxpg.ColourProperty("Colour", value=panel.GetBackgroundColour())) pg.Append(wxpg.SystemColourProperty("SystemColour")) pg.Append(wxpg.ImageFileProperty("ImageFile")) pg.Append( wxpg.MultiChoiceProperty("MultiChoice", choices=['wxWidgets', 'QT', 'GTK+'])) pg.Append(wxpg.PropertyCategory("4 - Additional Properties")) #pg.Append( wxpg.PointProperty("Point",value=panel.GetPosition()) ) pg.Append(SizeProperty("Size", value=panel.GetSize())) #pg.Append( wxpg.FontDataProperty("FontData") ) pg.Append(wxpg.IntProperty("IntWithSpin", value=256)) pg.SetPropertyEditor("IntWithSpin", "SpinCtrl") pg.SetPropertyAttribute("File", wxpg.PG_FILE_SHOW_FULL_PATH, 0) pg.SetPropertyAttribute("File", wxpg.PG_FILE_INITIAL_PATH, r"C:\Program Files\Internet Explorer") pg.SetPropertyAttribute("Date", wxpg.PG_DATE_PICKER_STYLE, wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY) pg.Append(wxpg.PropertyCategory("5 - Custom Properties and Editors")) pg.Append(IntProperty2("IntProperty2", value=1024)) pg.Append(PyObjectProperty("PyObjectProperty")) pg.Append(DirsProperty("Dirs1", value=['C:/Lib', 'C:/Bin'])) pg.Append(DirsProperty("Dirs2", value=['/lib', '/bin'])) # Test another type of delimiter pg.SetPropertyAttribute("Dirs2", "Delimiter", '"') # SampleMultiButtonEditor pg.Append(wxpg.LongStringProperty("MultipleButtons")) pg.SetPropertyEditor("MultipleButtons", "SampleMultiButtonEditor") pg.Append(SingleChoiceProperty("SingleChoiceProperty")) # Custom editor samples prop = pg.Append( wxpg.StringProperty("StringWithCustomEditor", value="test value")) pg.SetPropertyEditor(prop, "TrivialPropertyEditor") pg.Append(wxpg.ImageFileProperty("ImageFileWithLargeEditor")) pg.SetPropertyEditor("ImageFileWithLargeEditor", "LargeImageEditor") # When page is added, it will become the target page for AutoFill # calls (and for other property insertion methods as well) pg.AddPage("Page 2 - Results of AutoFill will appear here") topsizer.Add(pg, 1, wx.EXPAND) rowsizer = wx.BoxSizer(wx.HORIZONTAL) but = wx.Button(panel, -1, "SetPropertyValues") but.Bind(wx.EVT_BUTTON, self.OnSetPropertyValues) rowsizer.Add(but, 1) but = wx.Button(panel, -1, "GetPropertyValues") but.Bind(wx.EVT_BUTTON, self.OnGetPropertyValues) rowsizer.Add(but, 1) topsizer.Add(rowsizer, 0, wx.EXPAND) rowsizer = wx.BoxSizer(wx.HORIZONTAL) but = wx.Button(panel, -1, "GetPropertyValues(as_strings=True)") but.Bind(wx.EVT_BUTTON, self.OnGetPropertyValues2) rowsizer.Add(but, 1) but = wx.Button(panel, -1, "AutoFill") but.Bind(wx.EVT_BUTTON, self.OnAutoFill) rowsizer.Add(but, 1) topsizer.Add(rowsizer, 0, wx.EXPAND) rowsizer = wx.BoxSizer(wx.HORIZONTAL) but = wx.Button(panel, -1, "Delete") but.Bind(wx.EVT_BUTTON, self.OnDeleteProperty) rowsizer.Add(but, 1) but = wx.Button(panel, -1, "Run Tests") but.Bind(wx.EVT_BUTTON, self.RunTests) rowsizer.Add(but, 1) topsizer.Add(rowsizer, 0, wx.EXPAND) panel.SetSizer(topsizer) topsizer.SetSizeHints(panel) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(panel, 1, wx.EXPAND) self.SetSizer(sizer) self.SetAutoLayout(True)
def __init__(self, parent, IDfamille=None): wxpg.PropertyGrid.__init__(self, parent, -1, style=wxpg.PG_SPLITTER_AUTO_CENTER) self.IDfamille = IDfamille # Définition des éditeurs personnalisés self.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS) # Données Tiers pour Hélios self.Append(wxpg.PropertyCategory(_(u"Données tiers pour Hélios"))) propriete = wxpg.EnumProperty(label=_(u"Titulaire"), name="titulaire_helios") propriete.SetHelpString( _(u"Sélectionnez le titulaire du compte pour Hélios (Trésor Public)" )) self.Append(propriete) ## self.MAJ_titulaire_helios() propriete = wxpg.StringProperty(label=_(u"Identifiant national"), name="idtiers_helios", value=u"") propriete.SetHelpString( _(u"[Facultatif] Saisissez l'identifiant national (SIRET ou SIREN ou FINESS ou NIR)" )) self.Append(propriete) listeLabels, listeID = GetDonneesListe(LISTE_TYPES_ID_TIERS) propriete = wxpg.EnumProperty(label=_(u"Type d'identifiant national"), name="natidtiers_helios", labels=listeLabels, values=listeID, value=9999) propriete.SetHelpString( _(u"[Facultatif] Sélectionnez le type d'identifiant national du tiers pour Hélios (Trésor Public)" )) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Référence locale"), name="reftiers_helios", value="") propriete.SetHelpString( _(u"[Facultatif] Saisissez la référence locale du tiers")) self.Append(propriete) listeLabels, listeID = GetDonneesListe(LISTE_CATEGORIES_TIERS) propriete = wxpg.EnumProperty(label=_(u"Catégorie"), name="cattiers_helios", labels=listeLabels, values=listeID, value=1) propriete.SetHelpString( _(u"Sélectionnez la catégorie de tiers pour Hélios (Trésor Public)" )) self.Append(propriete) listeLabels, listeID = GetDonneesListe(LISTE_NATURES_JURIDIQUES) propriete = wxpg.EnumProperty(label=_(u"Nature juridique"), name="natjur_helios", labels=listeLabels, values=listeID, value=1) propriete.SetHelpString( _(u"Sélectionnez la nature juridique du tiers pour Hélios (Trésor Public)" )) self.Append(propriete) # Comptabilité self.Append(wxpg.PropertyCategory(_(u"Comptabilité"))) propriete = wxpg.StringProperty(label=_(u"Code comptable"), name="code_comptable", value=u"") propriete.SetHelpString( _(u"Saisissez le code comptable de la famille (Utilisé pour les exports vers logiciels de compta)" )) self.Append(propriete)
def Remplissage(self): # Bordereau self.Append(wxpg.PropertyCategory(_(u"Bordereau"))) propriete = wxpg.IntProperty(label=_(u"Exercice"), name="exercice", value=datetime.date.today().year) propriete.SetHelpString(_(u"Saisissez l'année de l'exercice")) self.Append(propriete) self.SetPropertyEditor("exercice", "SpinCtrl") listeMois = [ u"_", _(u"Janvier"), _(u"Février"), _(u"Mars"), _(u"Avril"), _(u"Mai"), _(u"Juin"), _(u"Juillet"), _(u"Août"), _(u"Septembre"), _(u"Octobre"), _(u"Novembre"), _(u"Décembre") ] propriete = wxpg.EnumProperty(label=_(u"Mois"), name="mois", labels=listeMois, values=range(0, 13), value=datetime.date.today().month) propriete.SetHelpString(_(u"Sélectionnez le mois")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Objet"), name="objet_dette", value=u"") propriete.SetHelpString( _(u"Saisissez l'objet du bordereau (Ex : 'Centre de Loisirs')")) self.Append(propriete) # Dates self.Append(wxpg.PropertyCategory(_(u"Dates"))) if 'phoenix' in wx.PlatformInfo: now = wx.DateTime.Now() else: now = wx.DateTime_Now() propriete = wxpg.DateProperty(label=_(u"Date d'émission"), name="date_emission", value=now) propriete.SetAttribute(wxpg.PG_DATE_PICKER_STYLE, DP_DROPDOWN | DP_SHOWCENTURY) self.Append(propriete) propriete = wxpg.DateProperty(label=_(u"Date du prélèvement"), name="date_prelevement", value=now) propriete.SetAttribute(wxpg.PG_DATE_PICKER_STYLE, DP_DROPDOWN | DP_SHOWCENTURY) self.Append(propriete) propriete = wxpg.DateProperty(label=_(u"Avis d'envoi"), name="date_envoi", value=now) propriete.SetAttribute(wxpg.PG_DATE_PICKER_STYLE, DP_DROPDOWN | DP_SHOWCENTURY) self.Append(propriete) # Collectivité self.Append(wxpg.PropertyCategory(_(u"Identification"))) propriete = wxpg.StringProperty(label=_(u"ID Bordereau"), name="id_bordereau", value=u"") propriete.SetHelpString( _(u"Saisissez l'ID du bordereau. Facultatif : Si non renseigné, le bordereau est créé dans le Brouillard" )) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Article budgétaire"), name="id_poste", value=u"") propriete.SetHelpString(_(u"Saisissez l'article budgétaire (Nature)")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"ID Collectivité"), name="id_collectivite", value=u"") propriete.SetHelpString( _(u"Saisissez l'ID de la collectivité (Numéro SIRET)")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Code Collectivité"), name="code_collectivite", value=u"") propriete.SetHelpString(_(u"Saisissez le code Collectivité")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Code Budget"), name="code_budget", value=u"") propriete.SetHelpString(_(u"Saisissez le code Budget")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Code Produit Local"), name="code_prodloc", value=u"") propriete.SetHelpString(_(u"Saisissez le code Produit Local")) self.Append(propriete) # Libellés self.Append(wxpg.PropertyCategory(_(u"Libellés"))) propriete = wxpg.StringProperty( label=_(u"Objet de la pièce"), name="objet_piece", value=_(u"FACTURE NUM{NUM_FACTURE} {MOIS_LETTRES} {ANNEE}")) propriete.SetHelpString( _(u"Saisissez l'objet de la pièce (en majuscules et sans accents). Vous pouvez personnaliser ce libellé grâce aux mots-clés suivants : {NOM_ORGANISATEUR} {NUM_FACTURE} {LIBELLE_FACTURE} {MOIS} {MOIS_LETTRES} {ANNEE}." )) self.Append(propriete) propriete = wxpg.StringProperty( label=_(u"Libellé du prélèvement"), name="prelevement_libelle", value=u"{NOM_ORGANISATEUR} - {OBJET_PIECE}") propriete.SetHelpString( _(u"Saisissez le libellé du prélèvement qui apparaîtra sur le relevé de compte de la famille. Vous pouvez personnaliser ce libellé grâce aux mots-clés suivants : {NOM_ORGANISATEUR} {OBJET_PIECE} {NUM_FACTURE} {LIBELLE_FACTURE} {MOIS} {MOIS_LETTRES} {ANNEE}." )) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Nom de la collectivité"), name="nom_collectivite", value=u"{NOM_ORGANISATEUR}") propriete.SetHelpString( _(u"Saisissez le nom de la collectivité. A défaut, c'est le nom de l'organisateur qui sera inséré automatiquement." )) self.Append(propriete) # Règlement automatique self.Append(wxpg.PropertyCategory(_(u"Règlement automatique"))) propriete = wxpg.BoolProperty(label=_(u"Régler automatiquement"), name="reglement_auto", value=False) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez que Noethys créé un règlement automatiquement pour les prélèvements" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.EnumProperty(label=_(u"Compte à créditer"), name="IDcompte") propriete.SetHelpString( _(u"Sélectionnez le compte bancaire à créditer dans le cadre du règlement automatique" )) propriete.SetEditor("EditeurComboBoxAvecBoutons") self.Append(propriete) self.MAJ_comptes() propriete = wxpg.EnumProperty(label=_(u"Mode de règlement"), name="IDmode") propriete.SetHelpString( _(u"Sélectionnez le mode de règlement à utiliser dans le cadre du règlement automatique" )) propriete.SetEditor("EditeurComboBoxAvecBoutons") self.Append(propriete) self.MAJ_modes()
def Remplissage(self): # --------------------------- TYPE DE DOCUMENT------------------------------------------ self.Append(wxpg.PropertyCategory(_(u"Type de document"))) # Type propriete = wxpg.EnumProperty( label=_(u"Type"), name="type_document", labels=[_(u"Détaillé"), _(u"Simplifié"), (u"Totaux")], values=[0, 1, 2], value=0) propriete.SetHelpString(_(u"Sélectionnez un type de document")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- COULEURS DE FOND ------------------------------------------ self.Append(wxpg.PropertyCategory(_(u"Couleurs de fond"))) # Couleur 1 propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 1"), name="couleur_fond_1", value=wx.Colour(204, 204, 255)) propriete.SetHelpString(_(u"Sélectionnez une couleur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur 2 propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 2"), name="couleur_fond_2", value=wx.Colour(230, 230, 255)) propriete.SetHelpString(_(u"Sélectionnez une couleur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- TITRE ------------------------------------------ self.Append(wxpg.PropertyCategory(_(u"Titre"))) # Texte propriete = wxpg.StringProperty( label=_(u"Texte"), name="titre_texte", value=_(u"Récapitulatif des factures")) propriete.SetHelpString(_(u"Saisissez un texte")) self.Append(propriete) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="titre_taille_texte", value=16) propriete.SetHelpString( _(u"Saisissez une taille de texte (16 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("titre_taille_texte", "SpinCtrl") # Couleur ## propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="titre_couleur", value=wx.BLACK) ## propriete.SetHelpString(_(u"Sélectionnez une couleur")) ## propriete.SetAttribute("obligatoire", True) ## self.Append(propriete) # Alignement labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")] propriete = wxpg.EnumProperty( label=_(u"Alignement du texte"), name="titre_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT], value=wx.ALIGN_LEFT) propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- FAMILLES ------------------------------------------ self.Append(wxpg.PropertyCategory(_(u"Champs familiaux"))) liste_choix = [ ("non", _(u"Non")), ] for dictQuestion in self.GetGrandParent( ).Questionnaires.listeQuestions: liste_choix.append(("{QUESTION_%d}" % dictQuestion["IDquestion"], dictQuestion["label"])) # Question 1 propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 1"), name="question_1", liste_choix=liste_choix, valeur="non") propriete.SetEditor("EditeurChoix") propriete.SetHelpString( _(u"Sélectionnez un item du questionnaire famille à inclure dans le document" )) self.Append(propriete) # Question 2 propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 2"), name="question_2", liste_choix=liste_choix, valeur="non") propriete.SetEditor("EditeurChoix") propriete.SetHelpString( _(u"Sélectionnez un item du questionnaire famille à inclure dans le document" )) self.Append(propriete) # Question 3 propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 3"), name="question_3", liste_choix=liste_choix, valeur="non") propriete.SetEditor("EditeurChoix") propriete.SetHelpString( _(u"Sélectionnez un item du questionnaire famille à inclure dans le document" )) self.Append(propriete) # --------------------------- INDIVIDUS ------------------------------------------ self.Append(wxpg.PropertyCategory(_(u"Champs individuels"))) liste_choix = [ ("non", _(u"Non")), ("ecole_debut_facture", _(u"Ecole à la date de début de la facture")), ("ecole_fin_facture", _(u"Ecole à la date de fin de la facture")), ("classe_debut_facture", _(u"Classe à la date de début de la facture")), ("classe_fin_facture", _(u"Classe à la date de fin de la facture")), ("niveau_debut_facture", _(u"Niveau scolaire à la date de début de la facture")), ("niveau_fin_facture", _(u"Niveau scolaire à la date de fin de la facture")), ] # Champ individuel 1 propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 1"), name="champ_ind_1", liste_choix=liste_choix, valeur="non") propriete.SetEditor("EditeurChoix") propriete.SetHelpString( _(u"Sélectionnez un champ individuel à intégrer dans le document" )) self.Append(propriete) # Champ individuel 2 propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 2"), name="champ_ind_2", liste_choix=liste_choix, valeur="non") propriete.SetEditor("EditeurChoix") propriete.SetHelpString( _(u"Sélectionnez un champ individuel à intégrer dans le document" )) self.Append(propriete) # Champ individuel 3 propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 3"), name="champ_ind_3", liste_choix=liste_choix, valeur="non") propriete.SetEditor("EditeurChoix") propriete.SetHelpString( _(u"Sélectionnez un champ individuel à intégrer dans le document" )) self.Append(propriete) # --------------------------- INTRODUCTION ------------------------------------------ self.Append(wxpg.PropertyCategory(_(u"Introduction"))) # Texte propriete = wxpg.StringProperty(label=_(u"Texte"), name="intro_texte", value=u"") propriete.SetHelpString(_(u"Saisissez un texte")) self.Append(propriete) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="intro_taille_texte", value=7) propriete.SetHelpString( _(u"Saisissez une taille de texte (7 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("intro_taille_texte", "SpinCtrl") # Style ## labels = [_(u"Normal"), _(u"Light"), "Gras"] ## valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD] ## propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="intro_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL) ## propriete.SetHelpString(_(u"Sélectionnez un style de texte")) ## propriete.SetAttribute("obligatoire", True) ## self.Append(propriete) # Couleur ## propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="intro_couleur", value=wx.BLACK) ## propriete.SetHelpString(_(u"Sélectionnez une couleur")) ## propriete.SetAttribute("obligatoire", True) ## self.Append(propriete) # Alignement labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")] propriete = wxpg.EnumProperty( label=_(u"Alignement du texte"), name="intro_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT], value=wx.ALIGN_LEFT) propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- CONCLUSION ------------------------------------------ self.Append(wxpg.PropertyCategory(_(u"Conclusion"))) # Texte propriete = wxpg.StringProperty( label=_(u"Texte"), name="conclusion_texte", value=_( u"{NBRE_FACTURES} factures | Montant total : {TOTAL_FACTURES}") ) propriete.SetHelpString( _(u"Saisissez un texte. Vous pouvez utiliser les mots-clés suivants : {NBRE_FACTURES}, {TOTAL_FACTURES}, {NBRE_FACT_PRELEV}, {TOTAL_FACT_PRELEV}" )) self.Append(propriete) # Taille police propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="conclusion_taille_texte", value=7) propriete.SetHelpString( _(u"Saisissez une taille de texte (7 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("conclusion_taille_texte", "SpinCtrl") # Style ## labels = [_(u"Normal"), _(u"Light"), "Gras"] ## valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD] ## propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="conclusion_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_BOLD) ## propriete.SetHelpString(_(u"Sélectionnez un style de texte")) ## propriete.SetAttribute("obligatoire", True) ## self.Append(propriete) # Couleur ## propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="conclusion_couleur", value=wx.BLACK) ## propriete.SetHelpString(_(u"Sélectionnez une couleur")) ## propriete.SetAttribute("obligatoire", True) ## self.Append(propriete) # Alignement labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")] propriete = wxpg.EnumProperty( label=_(u"Alignement du texte"), name="conclusion_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT], value=wx.ALIGN_LEFT) propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) propriete.SetAttribute("obligatoire", True) self.Append(propriete)
class FBConfigurePanel(wx.Panel): def PreCreate(self, pre): pass def __init__(self, parent, init=False): self.parent = parent self.initialized = False self.root = None self._resources = xrc.EmptyXmlResource() self._resources.Load(_getpath('xrc', 'configure.xrc')) pre = wx.PrePanel() self.PreCreate(pre) self._resources.LoadOnPanel(pre, parent, "configure_panel") self.PostCreate(pre) self.pg = wxpg.PropertyGridManager(self, style=wxpg.PG_SPLITTER_AUTO_CENTER | wxpg.PG_AUTO_SORT | wxpg.PG_TOOLBAR) self.pg_ctrl = self._resources.AttachUnknownControl( "property_grid", self.pg, self) xrc.XRCCTRL(self, 'generate_b').Bind(wx.EVT_BUTTON, self.onGenerate) xrc.XRCCTRL(self, 'reset_b').Bind(wx.EVT_BUTTON, self.onReset) xrc.XRCCTRL(self, 'load_b').Bind(wx.EVT_BUTTON, self.onLoad) xrc.XRCCTRL(self, 'save_b').Bind(wx.EVT_BUTTON, self.onSave) if init: wx.CallAfter(self.collect) #xrc.XRCCTRL(self, 'commands_box').InsertItems(self._COMMANDS, 0) #xrc.XRCCTRL(self, 'run_b').Bind(wx.EVT_BUTTON, self.onRun) #xrc.XRCCTRL(self, 'clear_b').Bind(wx.EVT_BUTTON, self.onClear) #xrc.XRCCTRL(self, 'details_tc').SetMinSize((-1, 150)) #xrc.XRCCTRL(self, 'commands_box').SetMinSize((200, 200)) #xrc.XRCCTRL(self, 'progress').SetSize((-1, 3)) #xrc.XRCCTRL(self, 'progress').SetMaxSize((-1, 3)) #self.selectProject(None) def update(self): # this is some dummy code to initialize the writer try: _helptxt = publish_parts('dummy', writer_name='html')['html_body'] except Exception, e: pass self.variables = foxygen.Variables() xrc.XRCCTRL(self, 'project_description_tc').SetValue( self.variables.description) self.stree = foxygen.SourceTree(self.root, self.variables) self.stree.collect() self.variables.fixDuplicates() _vars = self.variables.getVariables(sort=True) for kp, vp in self.pages.iteritems(): _groups = sorted(self.variables.getGroups()) for g in _groups + [None]: _vars = self.variables.getVariables(levels=[kp], groups=[g], sort=True) if len(_vars) < 1: continue if g is None: vp.Append(wxpg.PropertyCategory('misc', 'misc-group')) else: vp.Append(wxpg.PropertyCategory(g, g + '-group')) for i, x in enumerate(_vars): try: if x.type == int: prop = vp.Append( FBIntProperty(x.name, value=x.value, variables=self.variables)) elif x.type == float: prop = vp.Append( FBFloatProperty(x.name, value=x.value, variables=self.variables)) elif x.type == "toggle": prop = vp.Append( wxpg.BoolProperty(x.name, value=x.value)) self.pg.SetPropertyAttribute( x.name, "UseCheckbox", True) elif x.type in ["select", "switch"]: prop = vp.Append( wxpg.EnumProperty(x.name, x.name, x.choices, value=x.value)) else: prop = vp.Append( wxpg.StringProperty(x.name, value=str(x.value))) if kp == 'read-only': prop.Enable(False) except Exception, e: logging.warning( '%s: %s:%d: %s' % (x.name, x.fname, x.descrPos[0], str(e)))
def Remplissage(self): # Bordereau self.Append(wxpg.PropertyCategory(_(u"Bordereau"))) propriete = wxpg.IntProperty(label=_(u"Exercice"), name="exercice", value=datetime.date.today().year) propriete.SetHelpString(_(u"Saisissez l'année de l'exercice")) self.Append(propriete) self.SetPropertyEditor("exercice", "SpinCtrl") listeMois = [ u"_", _(u"Janvier"), _(u"Février"), _(u"Mars"), _(u"Avril"), _(u"Mai"), _(u"Juin"), _(u"Juillet"), _(u"Août"), _(u"Septembre"), _(u"Octobre"), _(u"Novembre"), _(u"Décembre") ] propriete = wxpg.EnumProperty(label=_(u"Mois"), name="mois", labels=listeMois, values=range(0, 13), value=datetime.date.today().month) propriete.SetHelpString(_(u"Sélectionnez le mois")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Objet"), name="objet_dette", value=u"") propriete.SetHelpString( _(u"Saisissez l'objet du bordereau (Ex : 'Centre de Loisirs')")) self.Append(propriete) # Dates self.Append(wxpg.PropertyCategory(_(u"Dates"))) if 'phoenix' in wx.PlatformInfo: now = wx.DateTime.Now() else: now = wx.DateTime_Now() propriete = wxpg.DateProperty(label=_(u"Date d'émission"), name="date_emission", value=now) propriete.SetAttribute(wxpg.PG_DATE_PICKER_STYLE, DP_DROPDOWN | DP_SHOWCENTURY) self.Append(propriete) propriete = wxpg.DateProperty(label=_(u"Date du prélèvement"), name="date_prelevement", value=now) propriete.SetAttribute(wxpg.PG_DATE_PICKER_STYLE, DP_DROPDOWN | DP_SHOWCENTURY) self.Append(propriete) propriete = wxpg.DateProperty(label=_(u"Avis d'envoi"), name="date_envoi", value=now) propriete.SetAttribute(wxpg.PG_DATE_PICKER_STYLE, DP_DROPDOWN | DP_SHOWCENTURY) self.Append(propriete) # Collectivité self.Append(wxpg.PropertyCategory(_(u"Identification"))) propriete = wxpg.StringProperty(label=_(u"ID Bordereau"), name="id_bordereau", value=u"") propriete.SetHelpString(_(u"Saisissez l'ID du bordereau")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"ID Poste"), name="id_poste", value=u"") propriete.SetHelpString(_(u"Saisissez l'ID du bordereau")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"ID Collectivité"), name="id_collectivite", value=u"") propriete.SetHelpString(_(u"Saisissez l'ID de la collectivité")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Code Collectivité"), name="code_collectivite", value=u"") propriete.SetHelpString(_(u"Saisissez le code Collectivité")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Code Budget"), name="code_budget", value=u"") propriete.SetHelpString(_(u"Saisissez le code Budget")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Code Produit Local"), name="code_prodloc", value=u"") propriete.SetHelpString(_(u"Saisissez le code Produit Local")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Code Etablissement"), name="code_etab", value=u"") propriete.SetHelpString( _(u"Saisissez le code Etablissement (3 caractères max). Nécessaire pour le datamatrix. Ce code apparaît dans les paramètres de flux dans Hélios." )) self.Append(propriete) # Libellés self.Append(wxpg.PropertyCategory(_(u"Libellés"))) propriete = wxpg.StringProperty( label=_(u"Objet de la pièce"), name="objet_piece", value=_(u"FACTURE NUM{NUM_FACTURE} {MOIS_LETTRES} {ANNEE}")) propriete.SetHelpString( _(u"Saisissez l'objet de la pièce (en majuscules et sans accents). Vous pouvez personnaliser ce libellé grâce aux mots-clés suivants : {NOM_ORGANISATEUR} {NUM_FACTURE} {LIBELLE_FACTURE} {MOIS} {MOIS_LETTRES} {ANNEE}." )) self.Append(propriete) propriete = wxpg.StringProperty( label=_(u"Libellé du prélèvement"), name="prelevement_libelle", value=u"{NOM_ORGANISATEUR} - {OBJET_PIECE}") propriete.SetHelpString( _(u"Saisissez le libellé du prélèvement qui apparaîtra sur le relevé de compte de la famille. Vous pouvez personnaliser ce libellé grâce aux mots-clés suivants : {NOM_ORGANISATEUR} {OBJET_PIECE} {NUM_FACTURE} {LIBELLE_FACTURE} {MOIS} {MOIS_LETTRES} {ANNEE}." )) self.Append(propriete) # Pièces jointes self.Append(wxpg.PropertyCategory(_(u"Pièces jointes"))) propriete = wxpg.BoolProperty( label=_(u"Inclure les factures en pièces jointes"), name="inclure_pieces_jointes", value=False) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez que Noethys intègre les factures en temps que pièces jointes au bordereau" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.StringProperty( label=_(u"Format des noms de fichiers"), name="format_nom_fichier", value=_(u"F{NUM_FACTURE}_{NOM_TITULAIRES_MAJ}")) propriete.SetHelpString( _(u"Saisissez le format des noms de fichiers (en majuscules et sans espaces ni accents). Vous pouvez personnaliser ce libellé grâce aux mots-clés suivants : {NUM_FACTURE} {NOM_TITULAIRES} {NOM_TITULAIRES_MAJ}." )) self.Append(propriete) # Règlement automatique self.Append(wxpg.PropertyCategory(_(u"Règlement automatique"))) propriete = wxpg.BoolProperty(label=_(u"Régler automatiquement"), name="reglement_auto", value=False) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez que Noethys créé un règlement automatiquement pour les prélèvements" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.EnumProperty(label=_(u"Compte à créditer"), name="IDcompte") propriete.SetHelpString( _(u"Sélectionnez le compte bancaire à créditer dans le cadre du règlement automatique" )) propriete.SetEditor("EditeurComboBoxAvecBoutons") self.Append(propriete) self.MAJ_comptes() propriete = wxpg.EnumProperty(label=_(u"Mode de règlement"), name="IDmode") propriete.SetHelpString( _(u"Sélectionnez le mode de règlement à utiliser dans le cadre du règlement automatique" )) propriete.SetEditor("EditeurComboBoxAvecBoutons") self.Append(propriete) self.MAJ_modes() # Préférences self.SetPropertyValue( "inclure_pieces_jointes", UTILS_Parametres.Parametres(mode="get", categorie="export_pes", nom="inclure_pieces_jointes", valeur=False))
def Remplissage(self): # Catégorie self.Append(wxpg.PropertyCategory(_(u"Tests"))) # CTRL Heure propriete = wxpg.StringProperty(label=_(u"Heure"), name="heure") propriete.SetHelpString(_(u"Sélectionnez une heure")) propriete.SetEditor("EditeurHeure") self.Append(propriete) # Catégorie self.Append(wxpg.PropertyCategory(_(u"Mémorisation"))) # Mémorisation des paramètres propriete = wxpg.EnumProperty(label=_(u"Mémoriser les paramètres"), name="memoriser_parametres", labels=[ _(u"Non"), _(u"Uniquement sur cet ordinateur"), _(u"Pour tous les ordinateurs") ], values=[0, 1, 3], value=3) propriete.SetHelpString(_(u"Mémoriser les paramètres")) self.Append(propriete) # Répertoire de sauvegarde propriete = wxpg.DirProperty(label=_(u"Répertoire pour copie unique"), name="repertoire_copie", value="") propriete.SetHelpString( _(u"Enregistrer une copie unique de chaque document dans le répertoire sélectionné" )) self.Append(propriete) # Catégorie self.Append(wxpg.PropertyCategory(_(u"Eléments à afficher"))) # Afficher les coupons-réponse propriete = wxpg.BoolProperty(label=_(u"Afficher le coupon-réponse"), name="coupon_reponse", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher un coupon-réponse dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher les messages propriete = wxpg.BoolProperty(label=_(u"Afficher les messages"), name="messages", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher les messages dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher le rappel des impayés propriete = wxpg.BoolProperty( label=_(u"Afficher le rappel des impayés"), name="impayes", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher le rappel des impayés dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher les codes-barres propriete = wxpg.BoolProperty(label=_(u"Afficher les codes-barres"), name="codes_barres", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher les codes-barres dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher les avis de prélèvements propriete = wxpg.BoolProperty( label=_(u"Afficher les avis de prélèvements"), name="avis_prelevements", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher les avis de prélèvements dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append(wxpg.PropertyCategory(_(u"Titre"))) # Afficher le titre propriete = wxpg.BoolProperty(label=_(u"Afficher le titre"), name="afficher_titre", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher le titre du le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Titre du document"), name="titre_document", value=_(u"Facture")) propriete.SetHelpString( _(u"Saisissez le titre du document (Par défaut 'Facture')")) self.Append(propriete) propriete = wxpg.IntProperty(label=_(u"Taille de texte du titre"), name="taille_texte_titre", value=19) propriete.SetHelpString( _(u"Saisissez la taille de texte du titre (29 par défaut)")) self.Append(propriete) self.SetPropertyEditor("taille_texte_titre", "SpinCtrl") propriete = wxpg.BoolProperty( label=_(u"Afficher la période de facturation"), name="afficher_periode", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher la période de facturation dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.IntProperty( label=_(u"Taille de texte de la période"), name="taille_texte_periode", value=8) propriete.SetHelpString( _(u"Saisissez la taille de texte de la période (8 par défaut)")) self.Append(propriete) self.SetPropertyEditor("taille_texte_periode", "SpinCtrl") # Catégorie self.Append(wxpg.PropertyCategory(_(u"Tableau des prestations"))) # Affichage condensé ou détaillé propriete = wxpg.EnumProperty( label=_(u"Affichage des prestations"), name="affichage_prestations", labels=[_(u"Détaillé"), _(u"Condensé")], values=[0, 1], value=0) propriete.SetHelpString(_(u"Sélectionnez un type d'affichage")) self.Append(propriete) # Intitulés des prestations labels = [ _(u"Intitulé original"), _(u"Intitulé original + état 'Absence injustifiée'"), _(u"Nom du tarif"), _(u"Nom de l'activité") ] propriete = wxpg.EnumProperty(label=_(u"Intitulés des prestations"), name="intitules", labels=labels, values=[0, 1, 2, 3], value=0) propriete.SetHelpString( _(u"Sélectionnez le type d'intitulé à afficher pour les prestations" )) self.Append(propriete) # Couleur 1 propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 1"), name="couleur_fond_1", value=wx.Colour(255, 0, 0)) propriete.SetHelpString(_(u"Sélectionnez la couleur 1")) self.Append(propriete) # Couleur 2 propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 2"), name="couleur_fond_2", value=wx.Colour(255, 0, 0)) propriete.SetHelpString(_(u"Sélectionnez la couleur 2")) self.Append(propriete) # Largeur colonne Date propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Date (ou Qté)"), name="largeur_colonne_date", value=50) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Date (50 par défaut)")) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_date", "SpinCtrl") # Largeur colonne Montant HT propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Montant HT"), name="largeur_colonne_montant_ht", value=50) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Montant HT (50 par défaut)" )) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_montant_ht", "SpinCtrl") # Largeur colonne Montant TVA propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Montant TVA"), name="largeur_colonne_montant_tva", value=50) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Montant TVA (50 par défaut)" )) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_montant_tva", "SpinCtrl") # Largeur colonne Montant TTC propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Montant TTC"), name="largeur_colonne_montant_ttc", value=70) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Montant TTC (70 par défaut)" )) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_montant_ttc", "SpinCtrl") # Taille de texte du nom de l'individu propriete = wxpg.IntProperty(label=_(u"Taille de texte de l'individu"), name="taille_texte_individu", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte de l'individu (9 par défaut)")) self.Append(propriete) self.SetPropertyEditor("taille_texte_individu", "SpinCtrl") # Taille de texte du nom de l'activité propriete = wxpg.IntProperty( label=_(u"Taille de texte de l'activité"), name="taille_texte_activite", value=6) propriete.SetHelpString( _(u"Saisissez la taille de texte de l'activité (6 par défaut)")) self.Append(propriete) self.SetPropertyEditor("taille_texte_activite", "SpinCtrl") # Taille de texte des noms de colonnes propriete = wxpg.IntProperty( label=_(u"Taille de texte des noms de colonnes"), name="taille_texte_noms_colonnes", value=5) propriete.SetHelpString( _(u"Saisissez la taille de texte des noms de colonnes (5 par défaut)" )) self.Append(propriete) self.SetPropertyEditor("taille_texte_noms_colonnes", "SpinCtrl") # Taille de texte des prestations propriete = wxpg.IntProperty( label=_(u"Taille de texte de des prestations"), name="taille_texte_prestation", value=7) propriete.SetHelpString( _(u"Saisissez la taille de texte des prestations (7 par défaut)")) self.Append(propriete) self.SetPropertyEditor("taille_texte_prestation", "SpinCtrl") # Catégorie self.Append(wxpg.PropertyCategory(_(u"Autres textes"))) propriete = wxpg.LongStringProperty(label=_(u"Texte d'introduction"), name="texte_introduction", value=u"") propriete.SetHelpString( _(u"Saisissez un texte d'introduction (Aucun par défaut)")) self.Append(propriete) propriete = wxpg.IntProperty( label=_(u"Taille de texte d'introduction"), name="taille_texte_introduction", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte d'introduction (9 par défaut)")) self.Append(propriete) self.SetPropertyEditor("taille_texte_introduction", "SpinCtrl") propriete = wxpg.LongStringProperty(label=_(u"Texte de conclusion"), name="texte_conclusion", value=u"") propriete.SetHelpString( _(u"Saisissez un texte de conclusion (Aucun par défaut)")) self.Append(propriete) propriete = wxpg.IntProperty(label=_(u"Taille de texte de conclusion"), name="taille_texte_conclusion", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte de conclusion (9 par défaut)")) self.Append(propriete) self.SetPropertyEditor("taille_texte_conclusion", "SpinCtrl")
def Remplissage(self): listeChamps = [ "{NUMERO_FACTURE}", "{DATE_DEBUT}", "{DATE_FIN}", "{DATE_ECHEANCE}", "{SOLDE}", "{SOLDE_LETTRES}", "{TOTAL_REPORTS}", "{NOM_LOT}", "{FAMILLE_NOM}", "{IDFAMILLE}", "{FAMILLE_RUE}", "{FAMILLE_CP}", "{FAMILLE_VILLE}", "{DATE_EDITION_LONG}", "{DATE_EDITION_COURT}", "{ORGANISATEUR_NOM}", "{ORGANISATEUR_RUE}", "{ORGANISATEUR_CP}", "{ORGANISATEUR_VILLE}", "{ORGANISATEUR_TEL}", "{ORGANISATEUR_FAX}", "{ORGANISATEUR_MAIL}", "{ORGANISATEUR_SITE}", "{ORGANISATEUR_AGREMENT}", "{ORGANISATEUR_SIRET}", "{ORGANISATEUR_APE}", ] # Catégorie self.Append(wxpg.PropertyCategory(_(u"Modèle"))) propriete = wxpg.EnumProperty(label=_(u"Modèle de document"), name="IDmodele", value=0) propriete.SetHelpString( _(u"Sélectionnez le modèle de document à utiliser")) propriete.SetEditor("EditeurComboBoxAvecBoutons") propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.MAJ_modeles() # Catégorie self.Append(wxpg.PropertyCategory(_(u"Mémorisation"))) # Mémorisation des paramètres propriete = wxpg.BoolProperty(label=_(u"Mémoriser les paramètres"), name="memoriser_parametres", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez mémoriser les paramètres de cette liste" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Répertoire de sauvegarde propriete = wxpg.DirProperty(label=_(u"Répertoire pour copie unique"), name="repertoire_copie", value="") propriete.SetHelpString( _(u"Enregistrer une copie unique de chaque document dans le répertoire sélectionné. Sinon laissez vide ce champ." )) self.Append(propriete) # Catégorie self.Append(wxpg.PropertyCategory(_(u"Eléments à afficher"))) # Affichage condensé ou détaillé propriete = wxpg.EnumProperty(label=_(u"Afficher le solde"), name="affichage_solde", labels=[_(u"Actuel"), _(u"Initial")], values=[0, 1], value=0) propriete.SetHelpString( _(u"Sélectionnez un type d'affichage pour le solde (Actuel=Solde à ce jour / Initial=Solde au moment de la génération de la facture)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Afficher le rappel des impayés propriete = wxpg.BoolProperty( label=_(u"Afficher le rappel des impayés"), name="afficher_impayes", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher le rappel des impayés dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Intégrer les impayés au solde propriete = wxpg.BoolProperty( label=_(u"Intégrer les impayés au solde"), name="integrer_impayes", value=False) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez intégrer les impayés dans le solde" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher les coupons-réponse propriete = wxpg.BoolProperty(label=_(u"Afficher le coupon-réponse"), name="afficher_coupon_reponse", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher un coupon-réponse dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher les messages propriete = wxpg.BoolProperty(label=_(u"Afficher les messages"), name="afficher_messages", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher les messages dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher les codes-barres propriete = wxpg.BoolProperty(label=_(u"Afficher les codes-barres"), name="afficher_codes_barres", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher les codes-barres dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher les règlements propriete = wxpg.BoolProperty(label=_(u"Afficher les règlements"), name="afficher_reglements", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher les règlements dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher les avis de prélèvements propriete = wxpg.BoolProperty( label=_(u"Afficher les avis de prélèvements"), name="afficher_avis_prelevements", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher les avis de prélèvements dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Afficher les QF aux dates concernées propriete = wxpg.BoolProperty(label=_(u"Afficher les QF"), name="afficher_qf_dates", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher les QF aux dates concernées dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append(wxpg.PropertyCategory(_(u"Titre"))) # Afficher le titre propriete = wxpg.BoolProperty(label=_(u"Afficher le titre"), name="afficher_titre", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher le titre du le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Titre du document"), name="texte_titre", value=_(u"Facture")) propriete.SetHelpString( _(u"Saisissez le titre du document (Par défaut 'Facture'). Vous pouvez intégrer les mots-clés suivants : %s" ) % ", ".join(listeChamps)) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.IntProperty(label=_(u"Taille de texte du titre"), name="taille_texte_titre", value=19) propriete.SetHelpString( _(u"Saisissez la taille de texte du titre (29 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_titre", "SpinCtrl") propriete = wxpg.BoolProperty( label=_(u"Afficher la période de facturation"), name="afficher_periode", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez afficher la période de facturation dans le document" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.IntProperty( label=_(u"Taille de texte de la période"), name="taille_texte_periode", value=8) propriete.SetHelpString( _(u"Saisissez la taille de texte de la période (8 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_periode", "SpinCtrl") # Catégorie self.Append(wxpg.PropertyCategory(_(u"Tableau des prestations"))) # Affichage condensé ou détaillé propriete = wxpg.EnumProperty( label=_(u"Affichage des prestations"), name="affichage_prestations", labels=[ _(u"Détaillé"), _(u"Regroupement par label"), _(u"Regroupement par label et montant unitaire") ], values=[0, 1, 2], value=0) propriete.SetHelpString(_(u"Sélectionnez un type d'affichage")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Intitulés des prestations labels = [ _(u"Intitulé original"), _(u"Intitulé original + état 'Absence injustifiée'"), _(u"Nom du tarif"), _(u"Nom de l'activité") ] propriete = wxpg.EnumProperty(label=_(u"Intitulés des prestations"), name="intitules", labels=labels, values=[0, 1, 2, 3], value=0) propriete.SetHelpString( _(u"Sélectionnez le type d'intitulé à afficher pour les prestations" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur 1 propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 1"), name="couleur_fond_1", value=wx.Colour(204, 204, 255)) propriete.SetHelpString(_(u"Sélectionnez la couleur 1")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur 2 propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 2"), name="couleur_fond_2", value=wx.Colour(234, 234, 255)) propriete.SetHelpString(_(u"Sélectionnez la couleur 2")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Largeur colonne Date propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Date (ou Qté)"), name="largeur_colonne_date", value=50) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Date (50 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_date", "SpinCtrl") # Largeur colonne Montant HT propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Montant HT"), name="largeur_colonne_montant_ht", value=50) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Montant HT (50 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_montant_ht", "SpinCtrl") # Largeur colonne Montant TVA propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Montant TVA"), name="largeur_colonne_montant_tva", value=50) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Montant TVA (50 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_montant_tva", "SpinCtrl") # Largeur colonne Montant TTC propriete = wxpg.IntProperty( label=_(u"Largeur de la colonne Montant TTC"), name="largeur_colonne_montant_ttc", value=70) propriete.SetHelpString( _(u"Saisissez la largeur de la colonne Montant TTC (70 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("largeur_colonne_montant_ttc", "SpinCtrl") # Taille de texte du nom de l'individu propriete = wxpg.IntProperty(label=_(u"Taille de texte de l'individu"), name="taille_texte_individu", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte de l'individu (9 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_individu", "SpinCtrl") # Taille de texte du nom de l'activité propriete = wxpg.IntProperty( label=_(u"Taille de texte de l'activité"), name="taille_texte_activite", value=6) propriete.SetHelpString( _(u"Saisissez la taille de texte de l'activité (6 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_activite", "SpinCtrl") # Taille de texte des noms de colonnes propriete = wxpg.IntProperty( label=_(u"Taille de texte des noms de colonnes"), name="taille_texte_noms_colonnes", value=5) propriete.SetHelpString( _(u"Saisissez la taille de texte des noms de colonnes (5 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_noms_colonnes", "SpinCtrl") # Taille de texte des prestations propriete = wxpg.IntProperty( label=_(u"Taille de texte des prestations"), name="taille_texte_prestation", value=7) propriete.SetHelpString( _(u"Saisissez la taille de texte des prestations (7 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_prestation", "SpinCtrl") # Taille de texte des messages propriete = wxpg.IntProperty(label=_(u"Taille de texte des messages"), name="taille_texte_messages", value=7) propriete.SetHelpString( _(u"Saisissez la taille de texte des messages (7 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_messages", "SpinCtrl") # Taille de texte des labels totaux propriete = wxpg.IntProperty( label=_(u"Taille de texte des labels totaux"), name="taille_texte_labels_totaux", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte des labels totaux (9 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_labels_totaux", "SpinCtrl") # Taille de texte des totaux propriete = wxpg.IntProperty( label=_(u"Taille de texte des montants totaux"), name="taille_texte_montants_totaux", value=10) propriete.SetHelpString( _(u"Saisissez la taille de texte des montants totaux (10 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_montants_totaux", "SpinCtrl") # Catégorie self.Append(wxpg.PropertyCategory(_(u"Texte d'introduction"))) propriete = wxpg.LongStringProperty(label=_(u"Texte d'introduction"), name="texte_introduction", value=u"") propriete.SetHelpString( _(u"Saisissez un texte d'introduction (Aucun par défaut). Vous pouvez intégrer les mots-clés suivants : %s" ) % ", ".join(listeChamps)) self.Append(propriete) propriete = wxpg.IntProperty( label=_(u"Taille de texte d'introduction"), name="taille_texte_introduction", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte d'introduction (9 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_introduction", "SpinCtrl") propriete = wxpg.EnumProperty(label=_(u"Style de texte introduction"), name="style_texte_introduction", labels=[ _(u"Normal"), _(u"Italique"), "Gras", _(u"Italique + Gras") ], values=[0, 1, 2, 3], value=0) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.ColourProperty( label=_(u"Couleur de fond introduction"), name="couleur_fond_introduction", value=wx.Colour(255, 255, 255)) propriete.SetHelpString( _(u"Sélectionnez une couleur de fond pour le texte d'introduction" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.ColourProperty( label=_(u"Couleur de bord introduction"), name="couleur_bord_introduction", value=wx.Colour(255, 255, 255)) propriete.SetHelpString( _(u"Sélectionnez une couleur de bord pour le texte d'introduction" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.EnumProperty( label=_(u"Alignement du texte d'introduction"), name="alignement_texte_introduction", labels=[_(u"Gauche"), _(u"Centre"), _(u"Droite")], values=[0, 1, 2], value=0) propriete.SetHelpString( _(u"Sélectionnez un type d'alignement pour le texte d'introduction" )) self.Append(propriete) # Catégorie self.Append(wxpg.PropertyCategory(_(u"Texte de conclusion"))) propriete = wxpg.LongStringProperty(label=_(u"Texte de conclusion"), name="texte_conclusion", value=u"") propriete.SetHelpString( _(u"Saisissez un texte de conclusion (Aucun par défaut). Vous pouvez intégrer les mots-clés suivants : %s" ) % ", ".join(listeChamps)) self.Append(propriete) propriete = wxpg.IntProperty(label=_(u"Taille de texte de conclusion"), name="taille_texte_conclusion", value=9) propriete.SetHelpString( _(u"Saisissez la taille de texte de conclusion (9 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_texte_conclusion", "SpinCtrl") propriete = wxpg.EnumProperty(label=_(u"Style de texte conclusion"), name="style_texte_conclusion", labels=[ _(u"Normal"), _(u"Italique"), "Gras", _(u"Italique + Gras") ], values=[0, 1, 2, 3], value=0) propriete.SetHelpString(_(u"Sélectionnez un style de texte")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.ColourProperty(label=_(u"Couleur de fond conclusion"), name="couleur_fond_conclusion", value=wx.Colour(255, 255, 255)) propriete.SetHelpString( _(u"Sélectionnez une couleur de fond pour le texte de conclusion") ) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.ColourProperty(label=_(u"Couleur de bord conclusion"), name="couleur_bord_conclusion", value=wx.Colour(255, 255, 255)) propriete.SetHelpString( _(u"Sélectionnez une couleur de bord pour le texte de conclusion") ) propriete.SetAttribute("obligatoire", True) self.Append(propriete) propriete = wxpg.EnumProperty( label=_(u"Alignement du texte de conclusion"), name="alignement_texte_conclusion", labels=[_(u"Gauche"), _(u"Centre"), _(u"Droite")], values=[0, 1, 2], value=0) propriete.SetHelpString( _(u"Sélectionnez un type d'alignement pour le texte de conclusion" )) self.Append(propriete) # Signature self.Append(wxpg.PropertyCategory(_(u"Signature"))) propriete = wxpg.ImageFileProperty(label=_(u"Image de signature"), name="image_signature") propriete.SetHelpString( _(u"Sélectionnez l'image d'une signature à insérer en fin de document" )) self.Append(propriete) propriete = wxpg.IntProperty(label=_(u"Taille de l'image (en %)"), name="taille_image_signature", value=100) propriete.SetHelpString( _(u"Saisissez la taille de l'image en pourcentage (100 par défaut)" )) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("taille_image_signature", "SpinCtrl") propriete = wxpg.EnumProperty( label=_(u"Alignement de l'image"), name="alignement_image_signature", labels=[_(u"Gauche"), _(u"Centre"), _(u"Droite")], values=[0, 1, 2], value=0) propriete.SetHelpString( _(u"Sélectionnez un type d'alignement pour l'image de signature")) self.Append(propriete)
def getPropertyForType(self, name, label, dt): if dt == "str": pgp = wxpg.StringProperty(label, name, value="") elif dt == "float": pgp = wxpg.FloatProperty(label, name, value=0.0) elif dt == "int": pgp = wxpg.IntProperty(label, name, value=0) elif dt == "bool": pgp = wxpg.BoolProperty(label, name, value=False) elif dt == "point2dlist": pgp = PointList2DProperty(label, name, value=[], images=self.images) elif dt == "point2d": pgp = Point2DProperty(label, name, ["0.0", "0.0"]) elif dt == "point3d": pgp = Point3DProperty(label, name, ["0.0", "0.0", "0.0"]) elif dt == "anchorType": pgp = wxpg.EnumProperty(label, name, labels=anchorType.names, values=range(len(anchorType.names)), value=0) elif dt == "pocketType": pgp = wxpg.EnumProperty(label, name, labels=pocketType.names, values=range(len(pocketType.names)), value=0) elif dt == "cutDirection": pgp = wxpg.EnumProperty(label, name, labels=cutDirection.names, values=range(len(cutDirection.names)), value=0) elif dt == "toolMovement": pgp = wxpg.EnumProperty(label, name, labels=toolMovement.names, values=range(len(toolMovement.names)), value=0) elif dt == "enum": pgp = wxpg.EnumProperty(label, name, labels=["a", "b", "c"], values=range(3), value=0) else: #self.log("taking default action for unknown data type: %s" % dt) pgp = wxpg.StringProperty(label, name, value="") return pgp
def Remplissage(self): # Catégorie self.Append( wxpg.PropertyCategory(_(u"Activation")) ) # Activation du serveur de synchronisation nom = "portail_activation" propriete = wxpg.BoolProperty(label=_(u"Activer Connecthys"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour activer Connecthys pour ce fichier")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Serveur de synchronisation")) ) # Activation du serveur de synchronisation nom = "serveur_portail_activation" propriete = wxpg.BoolProperty(label=_(u"Activer sur cet ordinateur"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour activer le serveur de synchronisation sur la page d'accueil de Noethys sur cet ordinateur")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Délai de synchronisation du serveur nom = "serveur_synchro_delai" propriete = wxpg.EnumProperty(label=_(u"Délai de synchronisation"), labels=[y for x, y in LISTE_DELAIS_SYNCHRO], values=range(0, len(LISTE_DELAIS_SYNCHRO)), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Sélectionnez un délai pour la synchronisation")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Synchroniser à l'ouverture du serveur nom = "serveur_synchro_ouverture" propriete = wxpg.BoolProperty(label=_(u"Synchroniser à l'ouverture"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour synchroniser automatiquement à l'ouverture de Noethys sur cet ordinateur")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Hébergement du portail")) ) # Type d'hébergement nom = "hebergement_type" propriete = wxpg.EnumProperty(label=_(u"Type d'hébergement"), labels=[_(u"Local"), _(u"FTP")], values=[0, 1], name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Sélectionnez le type d'hébergement à utiliser : Local (Connecthys est installé sur l'ordinateur) ou FTP (Connecthys est envoyé sur un répertoire FTP)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Serveur FTP nom = "ftp_serveur" propriete = wxpg.StringProperty(label=_(u"Adresse du serveur"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez l'adresse du serveur FTP (Ex : ftp.monsite.com)")) self.Append(propriete) # Utilisateur nom = "ftp_utilisateur" propriete = wxpg.StringProperty(label=_(u"Utilisateur"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez l'utilisateur FTP")) self.Append(propriete) # Mot de passe nom = "ftp_mdp" propriete = wxpg.StringProperty(label=_(u"Mot de passe"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez le mot de passe FTP")) self.Append(propriete) # Répertoire FTP nom = "ftp_repertoire" propriete = wxpg.StringProperty(label=_(u"Répertoire"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez le répertoire FTP (ex : www/connecthys)")) self.Append(propriete) # Repertoire Hebergement Local nom = "hebergement_local_repertoire" propriete = wxpg.StringProperty(label=_(u"Répertoire local"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez le répertoire local (Ex : /home/bogucool/connecthys)")) self.Append(propriete) # Url Connecthys nom = "url_connecthys" propriete = wxpg.StringProperty(label=_(u"URL d'accès à Connecthys "), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez l'url d'accès à Connecthys (ex : http://127.0.0.1:5000 ou http://www.monsite.com/connecthys)")) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Base de données")) ) # Type base de données nom = "db_type" propriete = wxpg.EnumProperty(label=_(u"Type de base"), labels=[_(u"Locale (Sqlite)"), _(u"Réseau (MySQL)")], values=[0, 1], name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Sélectionnez le type de base de données à utiliser (locale ou réseau). MySQL est fortement conseillé afin d'éviter les conflits d'écriture en cas d'accès simultanés d'internautes.")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Serveur SQL nom = "db_serveur" propriete = wxpg.StringProperty(label=_(u"Adresse du serveur MySQL"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez l'adresse du serveur MySQL")) propriete.SetAttribute("obligatoire", False) self.Append(propriete) # Utilisateur nom = "db_utilisateur" propriete = wxpg.StringProperty(label=_(u"Utilisateur"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez l'utilisateur")) propriete.SetAttribute("obligatoire", False) self.Append(propriete) # Mot de passe nom = "db_mdp" propriete = wxpg.StringProperty(label=_(u"Mot de passe"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez le mot de passe")) propriete.SetAttribute("obligatoire", False) self.Append(propriete) # Nom de la base nom = "db_nom" propriete = wxpg.StringProperty(label=_(u"Nom de la base"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez le nom de la base de données à utiliser")) propriete.SetAttribute("obligatoire", False) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Sécurité")) ) # Clé secrète nom = "secret_key" propriete = wxpg.StringProperty(label=_(u"Clé de sécurité"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez une clé secrète (générée automatiquement par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Cryptage des transferts nom = "crypter_transferts" propriete = wxpg.BoolProperty(label=_(u"Crypter les données lors des transferts"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour crypter les données lors des transferts")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Mode debug nom = "mode_debug" propriete = wxpg.BoolProperty(label=_(u"Mode debug"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour activer le mode debug (Ne surtout pas utiliser en production !)")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Affichage")) ) # Image de fond du login nom = "image_identification" propriete = wxpg.ImageFileProperty(label=_(u"Image de fond de la page d'identification"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Sélectionnez une image pour la page d'identification")) self.Append(propriete) # Thème nom = "theme" propriete = wxpg.EnumProperty(label=_(u"Thème"), labels=[y for x, y in LISTE_THEMES], values=range(0, len(LISTE_THEMES)), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Sélectionnez un thème pour l'affichage")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Cadre logo organisateur nom = "cadre_logo" propriete = wxpg.EnumProperty(label=_(u"Cadre du logo de l'organisateur"), labels=[_(u"Carré"), _(u"Rond")], values=[0, 1], name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Sélectionnez le type de cadre du logo de l'organisateur")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Recevoir un document")) ) # Recevoir par Email nom = "recevoir_document_email" propriete = wxpg.BoolProperty(label=_(u"Recevoir par Email"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour activer la fonction Recevoir un document par Email")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Recevoir par courrier nom = "recevoir_document_courrier" propriete = wxpg.BoolProperty(label=_(u"Recevoir par courrier"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour activer la fonction Recevoir un document par courrier")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Retirer sur le site nom = "recevoir_document_site" propriete = wxpg.BoolProperty(label=_(u"Retirer sur un site"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour activer la fonction Retirer un document sur site")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Lieu pour retraite sur site nom = "recevoir_document_site_lieu" propriete = wxpg.StringProperty(label=_(u"Lieu du retrait sur site"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Saisissez un nom de lieux pour le retrait du document (ex: à l'accueil de la structure)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Paiement en ligne")) ) # Activer le paiement en ligne nom = "paiement_ligne_actif" propriete = wxpg.BoolProperty(label=_(u"Activer le paiement en ligne"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour activer la fonction de paiement en ligne")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Activités'")) ) # Afficher nom = "activites_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Incription à une activité nom = "activites_autoriser_inscription" propriete = wxpg.BoolProperty(label=_(u"Autoriser l'inscription à des activités"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour autoriser l'inscription à des activités")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Réservations'")) ) # Afficher nom = "reservations_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Factures'")) ) # Afficher nom = "factures_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Demande d'une facture nom = "factures_demande_facture" propriete = wxpg.BoolProperty(label=_(u"Autoriser la demande de factures"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour autoriser la demande de factures")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Règlements'")) ) # Afficher nom = "reglements_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Demande d'un reçu nom = "reglements_demande_recu" propriete = wxpg.BoolProperty(label=_(u"Autoriser la demande de reçus"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour autoriser la demande de reçus de règlements")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Pièces'")) ) # Afficher nom = "pieces_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Téléchargements de pièces nom = "pieces_autoriser_telechargement" propriete = wxpg.BoolProperty(label=_(u"Autoriser le téléchargement de pièces"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour autoriser le téléchargement de pièces")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Cotisations'")) ) # Afficher nom = "cotisations_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Historique'")) ) # Afficher nom = "historique_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Délai d'affichage de l'historique nom = "historique_delai" propriete = wxpg.EnumProperty(label=_(u"Temps d'affichage de l'historique"), labels=[y for x, y in LISTE_AFFICHAGE_HISTORIQUE], values=range(0, len(LISTE_AFFICHAGE_HISTORIQUE)), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Sélectionnez un délai pour l'affichage de l'historique : Au-delà l'historique sera caché.")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Contact'")) ) # Afficher nom = "contact_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Mentions légales'")) ) # Afficher nom = "mentions_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Catégorie self.Append( wxpg.PropertyCategory(_(u"Page 'Aide'")) ) # Afficher nom = "aide_afficher" propriete = wxpg.BoolProperty(label=_(u"Afficher"), name=nom, value=VALEURS_DEFAUT[nom]) propriete.SetHelpString(_(u"Cochez cette case pour afficher cette page")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete)
def Remplissage(self): listeChampsPiedsPages = [ "{DATE_JOUR}", "{TITRE_DOCUMENT}", "{NOM_ORGANISATEUR}", "{NUM_PAGE}", "{NBRE_PAGES}" ] # --------------------------- Divers ------------------------------------------ self.Append(wxpg.PropertyCategory("Divers")) # Inclure les images propriete = wxpg.BoolProperty(label=INCLURE_IMG_LABEL, name="inclure_images", value=True) propriete.SetHelpString(INCLURE_IMG_HELP) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Entete de colonne sur chaque page propriete = wxpg.BoolProperty(label=AFFICHER_ENTETE_LABEL, name="entetes_toutes_pages", value=True) propriete.SetHelpString(AFFICHER_ENTETE_HELP) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # Qualité de l'impression propriete = wxpg.EnumProperty(label=CHOIX_QUALITE_LABEL, name="qualite_impression", labels=CHOIX_QUALITE_LABELS, values=CHOIX_QUALITE_VALEURS, value=wx.PRINT_QUALITY_MEDIUM) propriete.SetHelpString(CHOIX_QUALITE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Marges ------------------------------------------ self.Append(wxpg.PropertyCategory("Marges")) # Gauche propriete = wxpg.IntProperty(label=MARGE_GAUCHE_LABEL, name="marge_gauche", value=5) propriete.SetHelpString(TAILLE_MARGE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("marge_gauche", "SpinCtrl") # Droite propriete = wxpg.IntProperty(label=MARGE_DROITE_LABEL, name="marge_droite", value=5) propriete.SetHelpString(TAILLE_MARGE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("marge_droite", "SpinCtrl") # Haut propriete = wxpg.IntProperty(label=MARGE_HAUT_LABEL, name="marge_haut", value=5) propriete.SetHelpString(TAILLE_MARGE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("marge_haut", "SpinCtrl") # Bas propriete = wxpg.IntProperty(label=MARGE_BAS_LABEL, name="marge_bas", value=5) propriete.SetHelpString(TAILLE_MARGE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("marge_bas", "SpinCtrl") # --------------------------- Quadrillage ------------------------------------------ self.Append(wxpg.PropertyCategory("Quadrillage")) # Epaisseur de trait propriete = wxpg.FloatProperty(label=EPAISSEUR_TRAIT_LABEL, name="grille_trait_epaisseur", value=0.25) propriete.SetHelpString(EPAISSEUR_TRAIT_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur de trait propriete = wxpg.ColourProperty(label=COULEUR_TRAIT_LABEL, name="grille_trait_couleur", value=wx.BLACK) propriete.SetHelpString(COULEUR_TRAIT_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Titre de liste ------------------------------------------ self.Append(wxpg.PropertyCategory("Titre")) # Taille police propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL, name="titre_taille_texte", value=16) propriete.SetHelpString(TAILLE_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("titre_taille_texte", "SpinCtrl") # Style propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL, name="titre_style", labels=STYLE_TEXTE_LABELS, values=STYLE_TEXTE_VALEURS, value=wx.FONTWEIGHT_BOLD) propriete.SetHelpString(STYLE_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL, name="titre_couleur", value=wx.BLACK) propriete.SetHelpString(COULEUR_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement labels = ["Gauche", "Centre", "Droite"] propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL, name="titre_alignement", labels=ALIGNEMENT_TEXTE_LABELS, values=ALIGNEMENT_TEXTE_VALUES, value=wx.ALIGN_LEFT) propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Intro ------------------------------------------ self.Append(wxpg.PropertyCategory("Introduction")) # Taille police propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL, name="intro_taille_texte", value=7) propriete.SetHelpString(TAILLE_TEXTE_INTRO_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("intro_taille_texte", "SpinCtrl") # Style propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL, name="intro_style", labels=STYLE_TEXTE_LABELS, values=STYLE_TEXTE_VALEURS, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(STYLE_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL, name="intro_couleur", value=wx.BLACK) propriete.SetHelpString(COULEUR_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL, name="intro_alignement", labels=ALIGNEMENT_TEXTE_LABELS, values=ALIGNEMENT_TEXTE_VALUES, value=wx.ALIGN_LEFT) propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Titre de colonne ------------------------------------------ self.Append(wxpg.PropertyCategory("Entête de colonne")) # Taille police propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL, name="titre_colonne_taille_texte", value=8) propriete.SetHelpString(TAILLE_TEXTE_TITRE_COL_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("titre_colonne_taille_texte", "SpinCtrl") # Style propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL, name="titre_colonne_style", labels=STYLE_TEXTE_LABELS, values=STYLE_TEXTE_VALEURS, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(STYLE_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL, name="titre_colonne_couleur", value=wx.BLACK) propriete.SetHelpString(COULEUR_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL, name="titre_colonne_alignement", labels=ALIGNEMENT_TEXTE_LABELS, values=ALIGNEMENT_TEXTE_VALUES, value=wx.ALIGN_CENTER) propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur de fond propriete = wxpg.ColourProperty(label=COULEUR_FOND_LABEL, name="titre_colonne_couleur_fond", value=wx.Colour(240, 240, 240)) propriete.SetHelpString(COULEUR_FOND_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Ligne ------------------------------------------ self.Append(wxpg.PropertyCategory("Ligne")) # Taille police propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL, name="ligne_taille_texte", value=8) propriete.SetHelpString(TAILLE_TEXTE_LIGNE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("ligne_taille_texte", "SpinCtrl") # Style labels = ["Normal", "Light", "Gras"] valeurs = [ wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD ] propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL, name="ligne_style", labels=STYLE_TEXTE_LABELS, values=STYLE_TEXTE_VALEURS, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(STYLE_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL, name="ligne_couleur", value=wx.BLACK) propriete.SetHelpString(COULEUR_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Multilignes autorisé propriete = wxpg.BoolProperty(label=AUTORISER_SAUT_LIGNE_LABEL, name="ligne_multilignes", value=True) propriete.SetHelpString(AUTORISER_SAUT_LIGNE_HELP) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) # --------------------------- Pied de page ------------------------------------------ self.Append(wxpg.PropertyCategory("Pied de page")) # Texte de gauche valeur = "{DATE_JOUR}" propriete = wxpg.StringProperty(label=PIED_TEXTE_GAUCHE_LABEL, name="pied_page_texte_gauche", value=valeur) propriete.SetHelpString( "Saisissez le texte de gauche du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s" % (valeur, ", ".join(listeChampsPiedsPages))) self.Append(propriete) # Texte du milieu valeur = "{TITRE_DOCUMENT} - {NOM_ORGANISATEUR}" propriete = wxpg.StringProperty(label=PIED_TEXTE_MILIEU_LABEL, name="pied_page_texte_milieu", value=valeur) propriete.SetHelpString( "Saisissez le texte du milieu du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s" % (valeur, ", ".join(listeChampsPiedsPages))) self.Append(propriete) # Texte de droite valeur = "{NUM_PAGE} / {NBRE_PAGES}" propriete = wxpg.StringProperty(label=PIED_TEXTE_DROITE_LABEL, name="pied_page_texte_droite", value=valeur) propriete.SetHelpString( "Saisissez le texte de droite du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s" % (valeur, ", ".join(listeChampsPiedsPages))) self.Append(propriete) # Taille police propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL, name="pied_page_taille_texte", value=8) propriete.SetHelpString(TAILLE_TEXTE_PIED_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("pied_page_taille_texte", "SpinCtrl") # Style labels = ["Normal", "Light", "Gras"] valeurs = [ wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD ] propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL, name="pied_page_style", labels=STYLE_TEXTE_LABELS, values=STYLE_TEXTE_VALEURS, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(STYLE_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL, name="pied_page_couleur", value=wx.BLACK) propriete.SetHelpString(COULEUR_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Pied de colonne ------------------------------------------ self.Append(wxpg.PropertyCategory("Pied de colonne")) # Taille police propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL, name="pied_colonne_taille_texte", value=8) propriete.SetHelpString(TAILLE_TEXTE_PIED_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("pied_colonne_taille_texte", "SpinCtrl") # Style labels = ["Normal", "Light", "Gras"] valeurs = [ wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD ] propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL, name="pied_colonne_style", labels=STYLE_TEXTE_LABELS, values=STYLE_TEXTE_VALEURS, value=wx.FONTWEIGHT_NORMAL) propriete.SetHelpString(STYLE_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL, name="pied_colonne_couleur", value=wx.BLACK) propriete.SetHelpString(COULEUR_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement labels = ["Gauche", "Centre", "Droite"] propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL, name="pied_colonne_alignement", labels=ALIGNEMENT_TEXTE_LABELS, values=ALIGNEMENT_TEXTE_VALUES, value=wx.ALIGN_CENTER) propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur de fond propriete = wxpg.ColourProperty(label=COULEUR_FOND_LABEL, name="pied_colonne_couleur_fond", value=wx.Colour(240, 240, 240)) propriete.SetHelpString(COULEUR_FOND_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # --------------------------- Pied de liste ------------------------------------------ self.Append(wxpg.PropertyCategory("Conclusion")) # Taille police propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL, name="conclusion_taille_texte", value=7) propriete.SetHelpString(TAILLE_TEXTE_CONCL_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("conclusion_taille_texte", "SpinCtrl") # Style propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL, name="conclusion_style", labels=STYLE_TEXTE_LABELS, values=STYLE_TEXTE_VALEURS, value=wx.FONTWEIGHT_BOLD) propriete.SetHelpString(STYLE_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Couleur propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL, name="conclusion_couleur", value=wx.BLACK) propriete.SetHelpString(COULEUR_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Alignement labels = ["Gauche", "Centre", "Droite"] propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL, name="conclusion_alignement", labels=ALIGNEMENT_TEXTE_LABELS, values=ALIGNEMENT_TEXTE_VALUES, value=wx.ALIGN_LEFT) propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP) propriete.SetAttribute("obligatoire", True) self.Append(propriete)
def __init__(self, *args, **kwargs): kwargs['title'] = 'Key Config' wx.Dialog.__init__(self, *args, **kwargs) self.Bind(wx.EVT_CHAR_HOOK, self.OnCharHook) main_sizer = wx.BoxSizer(wx.VERTICAL) self.pg = pg = wxpg.PropertyGrid(self) pg.Bind(wxpg.EVT_PG_CHANGED, self.OnPropGridChange) pg.Append(wxpg.PropertyCategory("Key Parameters")) prop = wxpg.StringProperty("Layout Coordinates", "layout", value="Row 0, Col 0") prop.ChangeFlag(wxpg.PG_PROP_READONLY, True) pg.Append(prop) prop = wxpg.StringProperty("Matrix Coordinates", "matrix", value="Row 0, Col 0") prop.ChangeFlag(wxpg.PG_PROP_READONLY, True) pg.Append(prop) prop = wxpg.StringProperty("Key Geometry", "geom", value="Height 0, Width 0") prop.ChangeFlag(wxpg.PG_PROP_READONLY, True) pg.Append(prop) pg.Append(wxpg.PropertyCategory("Key Assignment")) pg.Append(ScancodeProperty("Scancode", "code")) pg.LimitPropertyEditing("code", limit=True) labels = list(key_mode_map.keys()) values = list(key_mode_map.values()) pg.Append( wxpg.EnumProperty("Mode", "mode", labels=labels, values=values)) pg.Append(ScancodeProperty("Tap Code", "tap")) pg.LimitPropertyEditing("tap", limit=True) pg.EnableProperty("tap", enable=False) labels = list(with_mods_map.keys()) values = list(with_mods_map.values()) prop = wxpg.FlagsProperty("Automods", "wmods", labels=labels, values=values) prop.SetAttribute(wxpg.PG_BOOL_USE_CHECKBOX, True) pg.Append(prop) pg.LimitPropertyEditing(prop, limit=True) pg.ExpandAll() minHeight = (13 * pg.GetRowHeight()) + 4 minWidth = int(minHeight * 1.25) pg.SetMinSize((minWidth, minHeight)) pg.FitColumns() main_sizer.Add(pg, proportion=1, flag=wx.EXPAND) self.SetSizer(main_sizer) main_sizer.Fit(self) self.Layout()
def __init__(self, parent, IDfamille=None): wxpg.PropertyGrid.__init__(self, parent, -1, style=wxpg.PG_SPLITTER_AUTO_CENTER) self.IDfamille = IDfamille self.Bind(wxpg.EVT_PG_CHANGED, self.OnPropGridChange) # Définition des éditeurs personnalisés self.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS) # Données Tiers pour Hélios self.Append(wxpg.PropertyCategory(_(u"Données tiers pour Hélios"))) propriete = wxpg.EnumProperty(label=_(u"Titulaire"), name="titulaire_helios") propriete.SetHelpString( _(u"Sélectionnez le titulaire du compte pour Hélios (Trésor Public)" )) self.Append(propriete) ## self.MAJ_titulaire_helios() propriete = wxpg.StringProperty(label=_(u"Identifiant national"), name="idtiers_helios", value=u"") propriete.SetHelpString( _(u"[Facultatif] Saisissez l'identifiant national (SIRET ou SIREN ou FINESS ou NIR)" )) self.Append(propriete) listeLabels, listeID = GetDonneesListe(LISTE_TYPES_ID_TIERS) propriete = wxpg.EnumProperty(label=_(u"Type d'identifiant national"), name="natidtiers_helios", labels=listeLabels, values=listeID, value=9999) propriete.SetHelpString( _(u"[Facultatif] Sélectionnez le type d'identifiant national du tiers pour Hélios (Trésor Public)" )) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Référence locale"), name="reftiers_helios", value="") propriete.SetHelpString( _(u"[Facultatif] Saisissez la référence locale du tiers")) self.Append(propriete) listeLabels, listeID = GetDonneesListe(LISTE_CATEGORIES_TIERS) propriete = wxpg.EnumProperty(label=_(u"Catégorie"), name="cattiers_helios", labels=listeLabels, values=listeID, value=1) propriete.SetHelpString( _(u"Sélectionnez la catégorie de tiers pour Hélios (Trésor Public)" )) self.Append(propriete) listeLabels, listeID = GetDonneesListe(LISTE_NATURES_JURIDIQUES) propriete = wxpg.EnumProperty(label=_(u"Nature juridique"), name="natjur_helios", labels=listeLabels, values=listeID, value=1) propriete.SetHelpString( _(u"Sélectionnez la nature juridique du tiers pour Hélios (Trésor Public)" )) self.Append(propriete) # Facturation self.Append(wxpg.PropertyCategory(_(u"Facturation"))) # Autre adresse de facturation propriete = wxpg.BoolProperty(label=_(u"Autre adresse de facturation"), name="autre_adresse_facturation", value=False) propriete.SetHelpString( _(u"Cochez cette case pour activer une autre adresse de facturation" )) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Autre adresse - Nom"), name="adresse_nom", value="") propriete.SetHelpString(_(u"Saisissez un nom de destinataire")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Autre adresse - Rue"), name="adresse_rue", value="") propriete.SetHelpString(_(u"Saisissez la rue de l'adresse")) self.Append(propriete) propriete = wxpg.StringProperty( label=_(u"Autre adresse - Code postal"), name="adresse_cp", value="") propriete.SetHelpString(_(u"Saisissez le code postal de l'adresse")) self.Append(propriete) propriete = wxpg.StringProperty(label=_(u"Autre adresse - Ville"), name="adresse_ville", value="") propriete.SetHelpString(_(u"Saisissez la ville de l'adresse")) self.Append(propriete) # Comptabilité self.Append(wxpg.PropertyCategory(_(u"Comptabilité"))) propriete = wxpg.StringProperty(label=_(u"Code comptable"), name="code_comptable", value=u"") propriete.SetHelpString( _(u"Saisissez le code comptable de la famille (Utilisé pour les exports vers logiciels de compta)" )) self.Append(propriete)
def InitMatrice(self, matrice): # Compose la grille de saisie des paramètres selon le dictionnaire matrice self.matrice = matrice self.dicProperties = {} chapitre = self.matrice['nomchapitre'] if isinstance(chapitre, str): self.Append(wxpg.PropertyCategory(chapitre)) for ligne in self.matrice['lignes']: if 'name' in ligne and 'genre' in ligne: if not 'label' in ligne: ligne['name'] = None if not 'value' in ligne: ligne['value'] = None genre, name, label, value = (ligne['genre'], ligne['name'], ligne['label'], ligne['value']) genre = genre.lower() if not 'labels' in ligne: ligne['labels'] = [] """ if 'values' in ligne and ligne['values']: if ligne['labels']: if len(ligne['values']) > 0 and len(ligne['labels']) == 0: ligne['labels'] = ligne['values'] else: ligne['labels'] = ligne['values'] """ commande = '' try: commande = genre if genre in ['enum', 'combo']: values = list(range(0, len(ligne['labels']))) if not isinstance(value, int): value = 0 choix = wxpg.PGChoices(ligne['labels'], values=values) propriete = wxpg.EnumProperty(label=label, name=name, choices=choix, value=value) elif genre == 'multichoice': propriete = wxpg.MultiChoiceProperty( label, name, choices=ligne['labels'], value=value) elif genre in ['bool', 'check']: wxpg.PG_BOOL_USE_CHECKBOX = 1 propriete = wxpg.BoolProperty(label=label, name=name, value=value) propriete.PG_BOOL_USE_CHECKBOX = 1 elif genre in ['date', 'datetime', 'time']: wxpg.PG_BOOL_USE_CHECKBOX = 1 propriete = wxpg.DateProperty(label=label, name=name, value=value) propriete.SetFormat('%d/%m/%Y') propriete.PG_BOOL_USE_CHECKBOX = 1 else: commande = "wxpg." + genre.upper()[:1] + genre.lower()[1:] \ + "Property(label= label, name=name, value=value)" propriete = eval(commande) if 'help' in ligne: propriete.SetHelpString(ligne['help']) self.Append(propriete) self.dicProperties[propriete] = name self.dicProperties[name] = propriete except Exception as err: wx.MessageBox( "Echec sur Property de name - value: %s - %s (%s)\nLe retour d'erreur est : \n%s\n\nSur commande : %s" % (name, value, type(value), err, commande), 'CTRL_property.InitMatrice() : Paramètre ligne indigeste !', wx.OK | wx.ICON_STOP)
def UpdateHeaderValues(self): # clear the existing general page self._general_page.Clear() # get main frame widget - abort if something goes wrong # for instance - handle case where all tabs are closed try: try: image = component.getUtility(ICurrentImage) except component.ComponentLookupError: # no image is loaded return header = image.GetHeader().copy() dicom_header = image.GetDICOMHeader() pageState = component.getUtility( ICurrentViewportManager).GetPageState() except: logging.exception("ImageInfo") return # if page isn't an image, get out of here early if pageState.GetPageType() != "image": return # remove hidden properties # Update all text fields in the dialog box # Title val = dicom_header.PatientsName if isinstance(val, list): val = '\\'.join(val) properties = { 'Image Properties': [], 'Patient/Subject Info': [], 'Scan Properties': [], 'Reconstruction Properties': [], "Display Properties": [], 'Additional Properties': [] } prop = Property("Image Properties", "Number of Channels", image.GetNumberOfScalarComponents(), int, True) properties[prop.category].append(prop) spacing = image.GetSpacing() origin = image.GetOrigin() (SizeX, SizeY, SizeZ) = image.GetDimensions() _range = image.GetScalarRange() _size = SizeX * SizeY * SizeZ * image.GetScalarSize( ) * image.GetNumberOfScalarComponents() prop = Property("Image Properties", "Minimum Value", float(_range[0]), float, True) properties[prop.category].append(prop) prop = Property("Image Properties", "Maximum Value", float(_range[1]), float, True) properties[prop.category].append(prop) prop = Property( "Image Properties", "Voxel Size (mm)", "%.4F %.4F %.4F" % (spacing[0], spacing[1], spacing[2]), str, True) properties[prop.category].append(prop) prop = Property("Image Properties", "Image Origin (mm)", "%.4F %.4F %.4F" % (origin[0], origin[1], origin[2]), str, True) properties[prop.category].append(prop) prop = Property("Image Properties", "Image Bit-depth", int(image.GetScalarSize() * 8), int, True) properties[prop.category].append(prop) prop = Property("Image Properties", "Image Data Type", image.GetScalarTypeAsString(), str, True) properties[prop.category].append(prop) prop = Property("Image Properties", "Dimensions", "%d %d %d" % (SizeX, SizeY, SizeZ), str, True) properties[prop.category].append(prop) prop = Property("Image Properties", "Memory Required", self.sizeof_fmt(_size), str, True) properties[prop.category].append(prop) prop = Property("Patient/Subject Info", "Title", str(val).encode('utf-8'), str, False) properties[prop.category].append(prop) val = dicom_header.SeriesDescription prop = Property("Patient/Subject Info", "Subject", str(val).encode('utf-8'), str, False) properties[prop.category].append(prop) if 'PatientPosition' in dicom_header: pos = dicom_header.PatientPosition else: pos = '' if pos in self.patient_positions: index = self.patient_positions.keys().index(pos) else: index = 0 prop = Property("Patient/Subject Info", "Patient Position", index, self.patient_positions.values(), False) properties[prop.category].append(prop) # Modality modality = dicom_header.Modality if modality in self.modtostring: index = self.modtostring.keys().index(modality) else: index = 0 prop = Property("Scan Properties", "Modality", index, self.modtostring.values(), False) properties[prop.category].append(prop) try: _d = image.GetDate() # DICOM-style date dmy = None try: year, month, day = int(_d[0:4]), int(_d[4:6]), int(_d[6:8]) except: logging.error("Unable to parse DICOM date: {0}".format(_d)) _t = image.GetTime() # DICOM_style time try: hour, minute, second, microsecond = int(_t[0:2]), int( _t[2:4]), int(_t[4:6]), _t[6:] dmy = (day, month - 1, year) except: logging.error("Unable to parse DICOM time: {0}".format(_t)) if dmy: prop = Property("Scan Properties", "Date", wx.DateTimeFromDMY(*dmy), wx.DateTime, False) properties[prop.category].append(prop) except: logging.exception("UpdateHeaderValues") # Scan-related fields (deprecated) scan_mapping = { 'spacingunit': (str, 'Measurement Unit'), } # handle old-style keywords (deprecated) for key in header: if key.startswith('scan_') or key.startswith('scanner_'): if key in scan_mapping: dtype, label = scan_mapping[key] else: dtype, label = (str, key) if dtype == float or isinstance(header[key], float): prop = Property("Scan Properties", label, float(header[key]), float, False) elif dtype == int or isinstance(header[key], int): prop = Property("Scan Properties", label, int(header[key]), int, False) else: prop = Property("Scan Properties", label, str(header[key]), str, False) properties[prop.category].append(prop) # scan-related DICOM fields dicom_scan_fields = { 'ExposureTime': (float, 'Exposure Time (ms)'), 'KVP': (float, 'X-Ray Voltage (kVp)'), 'XRayTubeCurrent': (float, 'X-Ray Tube Current (mA)'), 'XRayTubeCurrentInmA': (float, u'X-Ray Tube Current (mA)'), 'XRayTubeCurrentInuA': (float, u'X-Ray Tube Current (\u00b5A)'), 'DistanceSourceToPatient': (float, 'Object Position (mm)'), 'DistanceSourceToDetector': (float, 'Detector Position (mm)'), 'Manufacturer': (str, 'Scanner Manufacturer'), 'ManufacturerModelName': (str, 'Scanner Model'), 'ProtocolName': (str, 'Protocol Name'), } # handle DICOM keywords for key in dicom_scan_fields: if key in dicom_header: dtype, label = dicom_scan_fields[key] value = dicom_header.get(key) if dtype == float: try: value = float(value) prop = Property("Scan Properties", label, value, float, False) properties[prop.category].append(prop) continue except: dtype = str elif dtype == int: try: value = int(value) prop = Property("Scan Properties", label, value, int, False) properties[prop.category].append(prop) continue except: dtype = str prop = Property("Scan Properties", label, str(dicom_header.get(key)), str, False) properties[prop.category].append(prop) # Reconstruction-related fields recon_property_created = False recon_mapping = { 'recon_sw_version': (str, 'Software Version'), 'recon_git_sha1': (str, 'Software SHA1'), 'recon_date': (str, 'Reconstruction Date'), 'recon_center_of_rotation': (float, 'Center of Rotation'), 'recon_central_slice': (float, 'Central Slice'), 'recon_filter_type': (str, 'Filter Type'), 'recon_auth': (int, 'Reconstruction Authorized'), 'recon_cmdLine': (str, 'Commandline'), 'recon_gate_delay_us': (float, u'Gating delay (\u00b5s)'), 'recon_gate_window_us': (float, u'Gating window (\u00b5s)'), 'ct_recon_macaddr': (str, 'Ethernet Address'), 'ct_recon_every_nth_proj': (int, 'View Skip'), 'ct_cone_angle': (float, 'Cone Angle (deg)') } for key in header.keys(): if key.startswith('recon_') or key.startswith( 'ct_recon_') or key in ('y_bin', 'z_bin'): if key in recon_mapping: dtype, label = recon_mapping[key] else: dtype, label = (str, key) if dtype == float: prop = Property("Reconstruction Properties", label, float(header[key]), float, False) properties[prop.category].append(prop) else: prop = Property("Reconstruction Properties", label, str(header[key]), str, False) properties[prop.category].append(prop) del (header[key]) try: if modality == 'CT': prop = Property("Reconstruction Properties", "Air Value", float(header.get('air', 0.0)), float, False) properties[prop.category].append(prop) prop = Property("Reconstruction Properties", "Water Value", float(header.get('water', 0.0)), float, False) properties[prop.category].append(prop) prop = Property("Reconstruction Properties", "Bone Value (HU", int(header.get('boneHU', 0)), int, False) properties[prop.category].append(prop) except: pass self._general_page.Append(wxpg.PropertyCategory("Display Properties")) prop = Property("Display Properties", "Texture Interpolation", bool(self._config.bInterpolateTextures), bool, False) properties[prop.category].append(prop) numC = image.GetNumberOfScalarComponents() prop = Property("Display Properties", "Colour Table", pageState.lut_index, self.LD.get_names(), False, disabled=(numC > 1)) properties[prop.category].append(prop) # grab configuration object, see if there's any colour info in there try: root = MicroViewObjectShelve.MicroViewObjectShelve.getObject( ).getRoot() state = root['options.pane3D.background'] bg1 = state.GetTopColour() bg2 = state.GetBottomColour() use_gradient = state.GetGradientState() except: bg1 = bg2 = (0, 0, 0) use_gradient = True # for the moment, colour editing shall be disabled prop = Property("Display Properties", "Background Colour #1", bg1, tuple, False) properties[prop.category].append(prop) prop = Property("Display Properties", "Background Colour #2", bg2, tuple, False) properties[prop.category].append(prop) prop = Property("Display Properties", "Enable Background Gradient", use_gradient, bool, False) properties[prop.category].append(prop) # everything else for key in header: _k = key.lower() if not (_k.startswith('recon_') or _k.startswith('scan_') or _k.startswith('scanner_') or _k.startswith('hidden')): if key.lower() not in ('size', 'air', 'water', 'bonehu', 'y_bin', 'z_bin'): try: prop = Property("Additional Properties", key, str(header[key]), str, False) properties[prop.category].append(prop) except: logging.warning("duplicate tag: {0}".format(key)) _filter = None if self._search_filter: _filter = self._search_filter.lower() _filter = _filter.split() added_categories = [] for category in properties: for property in properties[category]: name = property.name value = property.value # apply filter should_display = False if _filter: for _f in _filter: if _f in unicode(name).lower() or _f in unicode( repr(value)).lower(): should_display = True break if not should_display: continue if category not in added_categories: added_categories.append(category) self._general_page.Append(wxpg.PropertyCategory(category)) if property.value_type is int: _id = wxpg.IntProperty(property.name, value=property.value) elif property.value_type is float: _id = wxpg.FloatProperty(property.name, value=property.value) elif property.value_type is str: _id = wxpg.StringProperty(property.name, value=property.value) elif isinstance(property.value_type, list): # enum _id = wxpg.EnumProperty(property.name, property.name, property.value_type, range(len(property.value_type)), property.value) elif property.value_type is wx.DateTime: # date _id = wxpg.DateProperty(property.name, value=property.value) _id.SetAttribute(wxpg.PG_DATE_PICKER_STYLE, wx.DP_DROPDOWN | wx.DP_SHOWCENTURY) elif property.value_type is bool: _id = wxpg.BoolProperty(property.name, value=property.value) elif property.value_type is tuple: _id = wxpg.ColourProperty(property.name, value=property.value) self._general_page.Append(_id) if property.read_only: _id.ChangeFlag(wxpg.PG_PROP_READONLY, True) if property.disabled: self._general_page.DisableProperty(_id)