[gnue-contrib] r280 - in address: forms schema

[email protected]
Newsgroups gmane.comp.cms.gnue.cvs
Message-ID <[email protected]>
Author: reinhard
Date: 2007-10-21 10:25:39 -0500 (Sun, 21 Oct 2007)
New Revision: 280

Modified:
   address/forms/address.gfd
   address/schema/schema.gsd
Log:
Added filter fields and csv export.


Modified: address/forms/address.gfd
===================================================================
--- address/forms/address.gfd	2007-07-08 18:49:13 UTC (rev 279)
+++ address/forms/address.gfd	2007-10-21 15:25:39 UTC (rev 280)
@@ -40,6 +40,13 @@
     </condition>
   </datasource>
 
+  <datasource name="dts_csv" connection="address" table="contact left outer join company on contact.company = company.id" primarykey="contact.id">
+    <sortorder>
+      <sortfield name="company.name1" ignorecase="Y"/>
+      <sortfield name="contact.surname" ignorecase="Y"/>
+    </sortorder>
+  </datasource>
+
   <!-- ==================================================================== -->
 
   <logic>
@@ -74,6 +81,9 @@
       <field name="eMemoAvailable"                   datatype="boolean" editable="N"/>
       <field name="eMemo"        field="memo"        datatype="text"/>
       <field name="eQuicksearch" field="quicksearch" datatype="boolean"/>
+      <field name="eFilter1"     field="filter1"     datatype="boolean"/>
+      <field name="eFilter2"     field="filter2"     datatype="boolean"/>
+      <field name="eFilter3"     field="filter3"     datatype="boolean"/>
       <field name="contact_count"                    datatype="number"  length="4"  editable="N"/>
 
       <trigger type="ON-RECORDLOADED">
@@ -115,6 +125,9 @@
       <field name="eMail"       field="email"      datatype="text" length="64"/>
       <field name="eMemo"       field="memo"       datatype="text"/>
       <field name="eMemoAvailable"                 datatype="boolean" editable="N"/>
+      <field name="eFilter1"    field="filter1"    datatype="boolean"/>
+      <field name="eFilter2"    field="filter2"    datatype="boolean"/>
+      <field name="eFilter3"    field="filter3"    datatype="boolean"/>
 
       <trigger type="ON-RECORDLOADED">
         blk_contact.eMemoAvailable.value = (blk_contact.eMemo.value is not None and len(blk_contact.eMemo.value.strip()) > 0)
@@ -139,6 +152,30 @@
         </trigger>
       </field>
     </block>
+
+    <block name="blk_csv" datasource="dts_csv">
+      <field name="FA/Firma1" field="company.name1"/>
+      <field name="FA/Firma2" field="company.name2"/>
+      <field name="FA/Straße" field="company.street"/>
+      <field name="FA/PLZ" field="company.zip"/>
+      <field name="FA/Ort" field="company.city"/>
+      <field name="FA/Telefon" field="company.phone"/>
+      <field name="FA/Kategorie" field="company.category"/>
+      <field name="FA/Filter1" field="company.filter1"/>
+      <field name="FA/Filter2" field="company.filter2"/>
+      <field name="FA/Filter3" field="company.filter3"/>
+      <field name="ASP/Anrede" field="contact.salutation" fk_key="id" fk_description="text" fk_source="dts_salutation"/>
+      <field name="ASP/Titel" field="contact.title"/>
+      <field name="ASP/Vorname" field="contact.firstname"/>
+      <field name="ASP/Nachname" field="contact.surname"/>
+      <field name="ASP/Abteilung" field="contact.department"/>
+      <field name="ASP/Funktion" field="contact.duty"/>
+      <field name="ASP/Telefon" field="contact.phone1"/>
+      <field name="ASP/Mobil" field="contact.phone2"/>
+      <field name="ASP/Filter1" field="contact.filter1"/>
+      <field name="ASP/Filter2" field="contact.filter2"/>
+      <field name="ASP/Filter3" field="contact.filter3"/>
+    </block>
   </logic>
 
   <!-- ==================================================================== -->
@@ -161,6 +198,7 @@
               <entry field="eCountry"       label="Land:"/>
               <entry field="eVAT"           label="UID:"/>
               <entry field="eCRG"           label="FNr:"/>
+              <entry field="eQuicksearch" label="Schnellaufruf"/>
               <hbox label="Memo:">
                 <entry field="eMemoAvailable"     label="verfügbar"/>
                 <button action="act_memo_company" label="Bearbeiten"/>
@@ -177,7 +215,9 @@
               <entry field="eBWSupplier"  label="BW LiNr:"/>
               <entry field="eShipment"    label="Versandart:"/>
               <entry field="eCategory"    label="Kategorie:"/>
-              <entry field="eQuicksearch" label="Schnellaufruf"/>
+              <entry field="eFilter1"     label="Filter-1"/>
+              <entry field="eFilter2"     label="Filter-2"/>
+              <entry field="eFilter3"     label="Filter-3"/>
             </vbox>
           </hbox>
 
@@ -192,18 +232,21 @@
                 <entry field="eFirstname"  label="Vorname:"/>
                 <entry field="eSurname"    label="Nachname:"/>
                 <entry field="eDepartment" label="Abteilung:"/>
-                <entry field="eDuty"       label="Funktion"/>
+                <entry field="eDuty"       label="Funktion:"/>
+                <hbox label="Memo:">
+                  <entry field="eMemoAvailable" label="verfügbar"/>
+                  <button action="act_memo_contact" label="Bearbeiten"/>
+                </hbox>
               </vbox>
 
               <vbox>
-                <entry field="ePhone1"        label="Telefon 1:"/>
-                <entry field="ePhone2"        label="Telefon 2:"/>
+                <entry field="ePhone1"        label="Telefon:"/>
+                <entry field="ePhone2"        label="Mobil:"/>
                 <entry field="eFax"           label="Fax:"/>
                 <entry field="eMail"          label="E-Mail:"/>
-                <hbox label="Memo:">
-                  <entry field="eMemoAvailable" label="verfügbar"/>
-                  <button action="act_memo_contact" label="Bearbeiten"/>
-                </hbox>
+                <entry field="eFilter1"       label="Filter-1"/>
+                <entry field="eFilter2"       label="Filter-2"/>
+                <entry field="eFilter3"       label="Filter-3"/>
               </vbox>
             </hbox>
             <hbox>
@@ -228,6 +271,7 @@
             <entry block="blk" field="company" label="Schnellaufruf:" style="listbox"/>
           </hbox>
           <button action="act_search_phone" label="Telefonnummernsuche"/>
+          <button action="act_export" label="Datenexport"/>
         </vbox>
       </hbox>
     </page>
@@ -277,6 +321,43 @@
         blk_contact.eMemoAvailable.value = bool(value)
   </action>
 
+  <action name="act_export">
+    import wx
+    fname = wx.FileSelector("Daten exportieren", default_extension="txt",
+            wildcard="*.txt", flags=wx.SAVE | wx.OVERWRITE_PROMPT)
+    if not fname:
+        return
+    form.status_message("Daten werden exportiert...")
+    blk_csv.set_filter()
+    from gnue.common.utils import ucsv
+    fieldnames = [
+            u"FA/Firma1",
+            u"FA/Firma2",
+            u"FA/Straße",
+            u"FA/PLZ",
+            u"FA/Ort",
+            u"FA/Telefon",
+            u"FA/Kategorie",
+            u"FA/Filter1",
+            u"FA/Filter2",
+            u"FA/Filter3",
+            u"ASP/Anrede",
+            u"ASP/Titel",
+            u"ASP/Vorname",
+            u"ASP/Nachname",
+            u"ASP/Abteilung",
+            u"ASP/Funktion",
+            u"ASP/Telefon",
+            u"ASP/Mobil",
+            u"ASP/Filter1",
+            u"ASP/Filter2",
+            u"ASP/Filter3"]
+    ucsv.write_file(fieldnames, blk_csv.get_data(fieldnames), fname,
+            dialect="excel-tab", encoding="cp1250")
+    form.status_message("")
+    form.show_message("Datenexport beendet")
+  </action>
+
   <!-- ==================================================================== -->
   <!-- Edit memo                                                            -->
   <!-- ==================================================================== -->

Modified: address/schema/schema.gsd
===================================================================
--- address/schema/schema.gsd	2007-07-08 18:49:13 UTC (rev 279)
+++ address/schema/schema.gsd	2007-10-21 15:25:39 UTC (rev 280)
@@ -26,6 +26,9 @@
         <field name="category"    type="number" length="8"/>
         <field name="memo"        type="string"/>
         <field name="quicksearch" type="boolean"/>
+        <field name="filter1"     type="boolean"/>
+        <field name="filter2"     type="boolean"/>
+        <field name="filter3"     type="boolean"/>
       </fields>
 
       <primarykey name="pk_company">
@@ -56,6 +59,9 @@
         <field name="fax"        type="string" length="40"/>
         <field name="email"      type="string" length="64"/>
         <field name="memo"       type="string"/>
+        <field name="filter1"    type="boolean"/>
+        <field name="filter2"    type="boolean"/>
+        <field name="filter3"    type="boolean"/>
       </fields>
 
       <primarykey name="pk_contact">
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.