示例#1
0
    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])
示例#2
0
    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))
示例#3
0
    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
示例#4
0
    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()
示例#5
0
 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))
示例#6
0
    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
示例#7
0
    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") )
示例#8
0
    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)
示例#9
0
    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")))
示例#10
0
    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()
示例#11
0
文件: HEMyFrame.py 项目: DamirKh/zbv
    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')
示例#12
0
    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
示例#13
0
	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()
示例#14
0
    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)
示例#15
0
    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)
示例#16
0
    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)
示例#17
0
    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)
示例#18
0
    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)
示例#20
0
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)))
示例#21
0
    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))
示例#22
0
    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)
示例#24
0
    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
示例#25
0
    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)
示例#26
0
    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)
示例#27
0
    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()
示例#28
0
    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)
示例#29
0
    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)
示例#30
0
    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)