| Home | Trees | Indices | Help |
|
|---|
|
|
1 """GNUmed organization handling widgets.
2
3 copyright: authors
4 """
5 #============================================================
6 __author__ = "K.Hilbert"
7 __license__ = "GPL v2 or later (details at http://www.gnu.org)"
8
9 import logging
10 import sys
11
12
13 import wx
14
15
16 if __name__ == '__main__':
17 sys.path.insert(0, '../../')
18 from Gnumed.pycommon import gmI18N
19 gmI18N.activate_locale()
20 gmI18N.install_domain()
21
22 from Gnumed.pycommon import gmTools
23 from Gnumed.pycommon import gmMatchProvider
24 from Gnumed.pycommon import gmDispatcher
25
26 from Gnumed.business import gmOrganization
27
28 from Gnumed.wxpython import gmListWidgets
29 from Gnumed.wxpython import gmEditArea
30 from Gnumed.wxpython import gmPhraseWheel
31 from Gnumed.wxpython import gmPersonContactWidgets
32 from Gnumed.wxpython import gmAddressWidgets
33 from Gnumed.wxpython import gmGuiHelpers
34 from Gnumed.wxpython.gmDemographicsWidgets import cExternalIDEditAreaPnl
35
36
37 _log = logging.getLogger('gm.organization')
38
39 #============================================================
40 # organizational units API
41 #------------------------------------------------------------
43 ea = cOrgUnitEAPnl(parent, -1)
44 ea.data = org_unit
45 ea.mode = gmTools.coalesce(org_unit, 'new', 'edit')
46 dlg = gmEditArea.cGenericEditAreaDlg2(parent, -1, edit_area = ea, single_entry = single_entry)
47 if org is not None:
48 ea.organization = org
49 dlg.SetTitle(gmTools.coalesce(org_unit, _('Adding new organizational unit'), _('Editing organizational unit')))
50 if dlg.ShowModal() == wx.ID_OK:
51 dlg.DestroyLater()
52 return True
53 dlg.DestroyLater()
54 return False
55
56 #============================================================
58
59 if no_parent:
60 parent = None
61 else:
62 if parent is None:
63 parent = wx.GetApp().GetTopWindow()
64
65 #--------------------
66 def new():
67 manage_orgs(parent = parent, no_parent = no_parent)
68 return True
69 #--------------------
70 def refresh(lctrl):
71 units = gmOrganization.get_org_units(order_by = 'organization, unit, l10n_unit_category')
72 items = [ [
73 u['organization'],
74 u['unit'],
75 gmTools.coalesce(u['l10n_unit_category'], ''),
76 u['pk_org_unit']
77 ] for u in units ]
78
79 lctrl.set_string_items(items = items)
80 lctrl.set_data(data = units)
81 #--------------------
82 if msg is None:
83 msg = _("Organizations and units thereof.\n")
84
85 return gmListWidgets.get_choices_from_list (
86 parent = parent,
87 msg = msg,
88 caption = _('Unit selection ...'),
89 columns = [_('Organization'), _('Unit'), _('Unit type'), '#'],
90 can_return_empty = False,
91 single_selection = True,
92 refresh_callback = refresh,
93 new_callback = new
94 )
95
96 #============================================================
98
100 query = """
101 SELECT DISTINCT ON (data) * FROM (
102 SELECT * FROM ((
103
104 SELECT
105 pk_org_unit
106 AS data,
107 unit || coalesce(' (' || l10n_unit_category || ')', '') || ': ' || organization || ' (' || l10n_organization_category || ')'
108 AS list_label,
109 unit || ' (' || organization || ')'
110 AS field_label
111 FROM
112 dem.v_org_units
113 WHERE
114 unit %(fragment_condition)s
115
116 ) UNION ALL (
117
118 SELECT
119 pk_org_unit
120 AS data,
121 coalesce(l10n_unit_category || ' ', '') || '"' || unit || '": ' || organization || ' (' || l10n_organization_category || ')'
122 AS list_label,
123 unit || ' (' || organization || ')'
124 AS field_label
125 FROM
126 dem.v_org_units
127 WHERE
128 l10n_unit_category %(fragment_condition)s
129 OR
130 unit_category %(fragment_condition)s
131
132 ) UNION ALL (
133
134 SELECT
135 pk_org_unit
136 AS data,
137 organization || ': ' || unit || coalesce(' (' || l10n_unit_category || ')', '')
138 AS list_label,
139 unit || ' (' || organization || ')'
140 AS field_label
141 FROM
142 dem.v_org_units
143 WHERE
144 organization %(fragment_condition)s
145
146 )) AS all_matches
147 ORDER BY list_label
148 ) AS ordered_matches
149 LIMIT 50
150 """
151 mp = gmMatchProvider.cMatchProvider_SQL2(queries=query)
152 mp.setThresholds(1, 3, 5)
153 gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
154 self.SetToolTip(_("Select an organizational unit."))
155 self.matcher = mp
156 self.picklist_delay = 300
157 #--------------------------------------------------------
159 if self.GetData() is None:
160 return None
161 unit = self._data2instance()
162 if unit is None:
163 return None
164 return '\n'.join(unit.format(with_address = True))
165 #--------------------------------------------------------
167 if self.GetData() is None:
168 return None
169 return gmOrganization.cOrgUnit(aPK_obj = self.GetData())
170
171 #============================================================
173 """A list for managing organizational units."""
174
176
177 try:
178 self.__org = kwargs['org']
179 del kwargs['org']
180 except KeyError:
181 self.__org = None
182
183 gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
184
185 self.refresh_callback = self.refresh
186 self.new_callback = self._add
187 self.edit_callback = self._edit
188 self.delete_callback = self._del
189
190 self.__show_none_if_no_org = True
191 self.__init_ui()
192 self.__refresh()
193 #--------------------------------------------------------
194 # external API
195 #--------------------------------------------------------
198 #--------------------------------------------------------
199 # event handlers
200 #--------------------------------------------------------
203 #--------------------------------------------------------
206 #--------------------------------------------------------
209 #--------------------------------------------------------
212 #--------------------------------------------------------
213 # internal helpers
214 #--------------------------------------------------------
216 self._LCTRL_items.set_columns(columns = [ _('Organizational Unit'), _('Unit Category'), '#' ])
217 self._LCTRL_items.SetToolTip(_('Units (sites, parts, departments, branches, ...) of organizations registered in GNUmed.'))
218 self._LCTRL_items.item_tooltip_callback = self.get_tooltip
219 #self._LCTRL_items.set_column_widths(widths = [wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE])
220 #--------------------------------------------------------
222 if unit is None:
223 return _('Units (sites, parts, departments, branches, ...) of organizations registered in GNUmed.')
224 return '\n'.join(unit.format(with_address = True, with_org = True, with_comms = True))
225 #--------------------------------------------------------
227
228 msg_template = _('Units of: %s')
229
230 if self.__org is None:
231 self._BTN_add.Enable(False)
232 self._BTN_edit.Enable(False)
233 self._BTN_remove.Enable(False)
234 pk = None
235 self.message = msg_template % _('<no organization selected>')
236 if self.__show_none_if_no_org:
237 self._LCTRL_items.set_string_items(items = None)
238 return
239 else:
240 self._BTN_add.Enable(True)
241 pk = self.__org['pk_org']
242 org_str = '%s (%s)' % (
243 self.__org['organization'],
244 self.__org['l10n_category']
245 )
246 self.message = msg_template % org_str
247
248 units = gmOrganization.get_org_units(order_by = 'unit, l10n_unit_category', org = pk)
249 items = [ [
250 u['unit'],
251 gmTools.coalesce(u['l10n_unit_category'], ''),
252 u['pk_org_unit']
253 ] for u in units ]
254
255 self._LCTRL_items.set_string_items(items)
256 self._LCTRL_items.set_column_widths(widths = [wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE])
257 self._LCTRL_items.set_data(units)
258
259 for idx in range(len(units)):
260 unit = units[idx]
261 if unit['is_praxis_branch']:
262 self._LCTRL_items.SetItemTextColour(idx, wx.Colour('RED'))
263 #--------------------------------------------------------
264 # properties
265 #--------------------------------------------------------
268
272
273 org = property(_get_org, _set_org)
274 #--------------------------------------------------------
277
279 if show_none_if_no_org == self.__show_none_if_no_org:
280 return
281 if show_none_if_no_org:
282 self.__show_none_if_no_org = True
283 else:
284 self.__show_none_if_no_org = False
285 self.__refresh()
286
287 show_none_if_no_org = property(_get_show_none_if_no_org, _set_show_none_if_no_org)
288
289 #============================================================
290 # org unit edit area
291 from Gnumed.wxGladeWidgets import wxgOrgUnitEAPnl
292
294
296
297 try:
298 data = kwargs['unit']
299 del kwargs['unit']
300 except KeyError:
301 data = None
302
303 wxgOrgUnitEAPnl.wxgOrgUnitEAPnl.__init__(self, *args, **kwargs)
304 gmEditArea.cGenericEditAreaMixin.__init__(self)
305
306 self.mode = 'new'
307 self.data = data
308 if data is not None:
309 self.mode = 'edit'
310
311 # self.__init_ui()
312 #----------------------------------------------------------------
313 # def __init_ui(self):
314 # pass
315 #----------------------------------------------------------------
316 # generic Edit Area mixin API
317 #----------------------------------------------------------------
319 validity = True
320
321 if self._PRW_category.GetData() is not None:
322 self._PRW_category.display_as_valid(True)
323 else:
324 if self._PRW_category.GetValue().strip() == '':
325 self._PRW_category.display_as_valid(True)
326 else:
327 validity = False
328 self._PRW_category.display_as_valid(False)
329 self._PRW_category.SetFocus()
330
331 if self._PRW_unit.GetData() is not None:
332 self._PRW_unit.display_as_valid(True)
333 else:
334 if self._PRW_unit.GetValue().strip() != '':
335 self._PRW_unit.display_as_valid(True)
336 else:
337 validity = False
338 self._PRW_unit.display_as_valid(False)
339 self._PRW_unit.SetFocus()
340
341 if self._PRW_org.GetData() is None:
342 validity = False
343 self._PRW_org.display_as_valid(False)
344 self._PRW_org.SetFocus()
345 else:
346 self._PRW_org.display_as_valid(True)
347
348 return validity
349 #----------------------------------------------------------------
351 data = gmOrganization.create_org_unit (
352 pk_organization = self._PRW_org.GetData(),
353 unit = self._PRW_unit.GetValue().strip()
354 )
355 data['pk_category_unit'] = self._PRW_category.GetData()
356 data.save()
357
358 self.data = data
359 return True
360 #----------------------------------------------------------------
362 self.data['pk_org'] = self._PRW_org.GetData()
363 self.data['unit'] = self._PRW_unit.GetValue().strip()
364 self.data['pk_category_unit'] = self._PRW_category.GetData()
365 self.data.save()
366 return True
367 #----------------------------------------------------------------
369 self._PRW_org.SetText(value = '', data = None)
370 self._PRW_unit.SetText(value = '', data = None)
371 self._PRW_category.SetText(value = '', data = None)
372
373 self._PRW_unit.SetFocus()
374 #----------------------------------------------------------------
376 self._PRW_org.SetText(value = self.data['organization'], data = self.data['pk_org'])
377 self._PRW_unit.SetText(value = '', data = None)
378 self._PRW_category.SetText(value = self.data['unit_category'], data = self.data['pk_category_unit'])
379
380 self._PRW_unit.SetFocus()
381 #----------------------------------------------------------------
383 self._PRW_org.SetText(value = self.data['organization'], data = self.data['pk_org'])
384 self._PRW_unit.SetText(value = self.data['unit'], data = self.data['pk_org_unit'])
385 self._PRW_category.SetText(value = self.data['unit_category'], data = self.data['pk_category_unit'])
386
387 self._PRW_unit.SetFocus()
388 #----------------------------------------------------------------
391
392 organization = property(lambda x:x, _set_org)
393
394 #============================================================
395 from Gnumed.wxGladeWidgets import wxgOrgUnitAddressPnl
396
398
400
401 wxgOrgUnitAddressPnl.wxgOrgUnitAddressPnl.__init__(self, *args, **kwargs)
402
403 self.__unit = None
404 #--------------------------------------------------------
405 # internal helpers
406 #--------------------------------------------------------
408 if self.__unit is None:
409 self.message = _('<no unit selected>')
410 self._PRW_address_searcher.SetText('', None)
411 self._PRW_address_searcher.Enable(False)
412 self._BTN_save_picked_address.Enable(False)
413 self._BTN_add_new_address.Enable(False)
414 else:
415 if self.__unit['l10n_unit_category'] is None:
416 cat = ''
417 left_delim = ''
418 right_delim = ''
419 else:
420 cat = '%s ' % self.__unit['l10n_unit_category']
421 left_delim = gmTools.u_left_double_angle_quote
422 right_delim = gmTools.u_right_double_angle_quote
423 self.message = '%s%s%s%s' % (
424 cat,
425 left_delim,
426 self.__unit['unit'],
427 right_delim
428 )
429 self._PRW_address_searcher.Enable(True)
430 self._PRW_address_searcher.address = self.__unit['pk_address']
431 self._PRW_address_searcher.Enable(True)
432 self._BTN_save_picked_address.Enable(True)
433 self._BTN_add_new_address.Enable(True)
434 #--------------------------------------------------------
435 # event handlers
436 #--------------------------------------------------------
450 #--------------------------------------------------------
461 #--------------------------------------------------------
483 #--------------------------------------------------------
484 # properties
485 #--------------------------------------------------------
488
492
493 unit = property(_get_unit, _set_unit)
494 #--------------------------------------------------------
496 return self._LBL_message.GetLabel()
497
499 if msg is None:
500 self._LBL_message.Hide()
501 self._LBL_message.SetLabel('')
502 else:
503 self._LBL_message.SetLabel(msg)
504 self._LBL_message.Show()
505 self.Layout()
506
507 message = property(_get_message, _set_message)
508
509 #============================================================
511 """A list for managing an org unit's external IDs.
512
513 Does NOT act on/listen to the current patient.
514 """
516
517 try:
518 self.__unit = kwargs['unit']
519 del kwargs['unit']
520 except KeyError:
521 self.__unit = None
522
523 gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
524
525 self.refresh_callback = self.refresh
526 self.new_callback = self._add_id
527 self.edit_callback = self._edit_id
528 self.delete_callback = self._del_id
529
530 self.__init_ui()
531 self.refresh()
532 #--------------------------------------------------------
533 # external API
534 #--------------------------------------------------------
536 if self.__unit is None:
537 self._LCTRL_items.set_string_items()
538 return
539
540 ids = self.__unit.external_ids
541 self._LCTRL_items.set_string_items (
542 items = [ [
543 i['name'],
544 i['value'],
545 gmTools.coalesce(i['issuer'], ''),
546 gmTools.coalesce(i['comment'], '')
547 ] for i in ids
548 ]
549 )
550 self._LCTRL_items.set_column_widths()
551 self._LCTRL_items.set_data(data = ids)
552 #--------------------------------------------------------
553 # internal helpers
554 #--------------------------------------------------------
556 self._LCTRL_items.set_columns(columns = [
557 _('ID Type'),
558 _('Value'),
559 _('Issuer'),
560 _('Comment')
561 ])
562 #--------------------------------------------------------
564 ea = cExternalIDEditAreaPnl(self, -1)
565 ea.id_holder = self.__unit
566 dlg = gmEditArea.cGenericEditAreaDlg2(self, -1, edit_area = ea)
567 dlg.SetTitle(_('Adding new external ID'))
568 if dlg.ShowModal() == wx.ID_OK:
569 dlg.DestroyLater()
570 return True
571 dlg.DestroyLater()
572 return False
573 #--------------------------------------------------------
575 ea = cExternalIDEditAreaPnl(self, -1, external_id = ext_id)
576 ea.id_holder = self.__unit
577 dlg = gmEditArea.cGenericEditAreaDlg2(self, -1, edit_area = ea, single_entry = True)
578 dlg.SetTitle(_('Editing external ID'))
579 if dlg.ShowModal() == wx.ID_OK:
580 dlg.DestroyLater()
581 return True
582 dlg.DestroyLater()
583 return False
584 #--------------------------------------------------------
586 go_ahead = gmGuiHelpers.gm_show_question (
587 _( 'Do you really want to delete this\n'
588 'external ID from the organizational unit ?'),
589 _('Deleting external ID')
590 )
591 if not go_ahead:
592 return False
593 self.__unit.delete_external_id(pk_ext_id = ext_id['pk_id'])
594 return True
595 #--------------------------------------------------------
596 # properties
597 #--------------------------------------------------------
600
604
605 org_unit = property(_get_org_unit, _set_org_unit)
606
607 #============================================================
608 # organizations API
609 #------------------------------------------------------------
611
612 if no_parent:
613 parent = None
614 else:
615 if parent is None:
616 parent = wx.GetApp().GetTopWindow()
617
618 dlg = cOrganizationManagerDlg(parent, -1)
619 dlg.ShowModal()
620 dlg.DestroyLater()
621 #============================================================
623 ea = cOrganizationEAPnl(parent, -1)
624 ea.data = org
625 ea.mode = gmTools.coalesce(org, 'new', 'edit')
626 dlg = gmEditArea.cGenericEditAreaDlg2(parent, -1, edit_area = ea, single_entry = single_entry)
627 dlg.SetTitle(gmTools.coalesce(org, _('Adding new organization'), _('Editing organization')))
628 if dlg.ShowModal() == wx.ID_OK:
629 dlg.DestroyLater()
630 return True
631 dlg.DestroyLater()
632 return False
633 #============================================================
635
637 query = """
638 SELECT DISTINCT ON (data) * FROM (
639 SELECT * FROM ((
640
641 SELECT
642 pk_org
643 AS data,
644 organization || ' (' || l10n_category || ')'
645 AS list_label,
646 organization || ' (' || l10n_category || ')'
647 AS field_label
648 FROM
649 dem.v_orgs
650 WHERE
651 organization %(fragment_condition)s
652
653 ) UNION ALL (
654
655 SELECT
656 pk_org
657 AS data,
658 l10n_category || ': ' || organization
659 AS list_label,
660 organization || ' (' || l10n_category || ')'
661 AS field_label
662 FROM
663 dem.v_orgs
664 WHERE
665 l10n_category %(fragment_condition)s
666 OR
667 category %(fragment_condition)s
668
669 )) AS all_matches
670 ORDER BY list_label
671 ) AS ordered_matches
672 LIMIT 50
673 """
674 mp = gmMatchProvider.cMatchProvider_SQL2(queries=query)
675 mp.setThresholds(1, 3, 5)
676 gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
677 self.SetToolTip(_("Select an organization."))
678 self.matcher = mp
679 self.picklist_delay = 300
680 self.selection_only = True
681
682 #====================================================================
683 from Gnumed.wxGladeWidgets import wxgOrganizationEAPnl
684
685 -class cOrganizationEAPnl(wxgOrganizationEAPnl.wxgOrganizationEAPnl, gmEditArea.cGenericEditAreaMixin):
686
688
689 try:
690 data = kwargs['organization']
691 del kwargs['organization']
692 except KeyError:
693 data = None
694
695 wxgOrganizationEAPnl.wxgOrganizationEAPnl.__init__(self, *args, **kwargs)
696 gmEditArea.cGenericEditAreaMixin.__init__(self)
697
698 self.mode = 'new'
699 self.data = data
700 if data is not None:
701 self.mode = 'edit'
702
703 #self.__init_ui()
704 #----------------------------------------------------------------
707 #----------------------------------------------------------------
708 # generic Edit Area mixin API
709 #----------------------------------------------------------------
711 validity = True
712
713 if self._PRW_category.GetData() is None:
714 validity = False
715 self._PRW_category.display_as_valid(False)
716 self._PRW_category.SetFocus()
717 else:
718 self._PRW_category.display_as_valid(True)
719
720 if self._PRW_org.GetValue().strip() == '':
721 validity = False
722 self._PRW_org.display_as_valid(False)
723 self._PRW_org.SetFocus()
724 else:
725 self._PRW_org.display_as_valid(True)
726
727 # if self.mode == 'edit':
728 # if self._PRW_org.GetData() is None:
729 # validity = False
730 # self._PRW_org.display_as_valid(False)
731 # self._PRW_org.SetFocus()
732 # else:
733 # self._PRW_org.display_as_valid(True)
734 # else:
735 # if self._PRW_org.GetValue().strip() == u'':
736 # validity = False
737 # self._PRW_org.display_as_valid(False)
738 # self._PRW_org.SetFocus()
739 # else:
740 # if self._PRW_org.GetData() is not None:
741 # validity = False
742 # self._PRW_org.display_as_valid(False)
743 # self._PRW_org.SetFocus()
744 # else:
745 # self._PRW_org.display_as_valid(True)
746
747 return validity
748 #----------------------------------------------------------------
750 self.data = gmOrganization.create_org (
751 organization = self._PRW_org.GetValue().strip(),
752 category = self._PRW_category.GetData()
753 )
754 return True
755 #----------------------------------------------------------------
757 #self.data['pk_org'] = self._PRW_org.GetData()
758 self.data['organization'] = self._PRW_org.GetValue().strip()
759 self.data['pk_category_org'] = self._PRW_category.GetData()
760 self.data.save()
761 return True
762 #----------------------------------------------------------------
764 self._PRW_org.SetText(value = '', data = None)
765 self._PRW_category.SetText(value = '', data = None)
766
767 self._PRW_org.SetFocus()
768 #----------------------------------------------------------------
770 self._PRW_org.SetText(value = '', data = None)
771 self._PRW_category.SetText(value = self.data['l10n_category'], data = self.data['pk_category_org'])
772
773 self._PRW_org.SetFocus()
774 #----------------------------------------------------------------
780
781 #============================================================
783
785 query = """
786 SELECT DISTINCT ON (data)
787 *
788 FROM (
789 SELECT
790 pk
791 AS data,
792 _(description) || ' (' || description || ')'
793 AS list_label,
794 _(description)
795 AS field_label
796 FROM
797 dem.org_category
798 WHERE
799 _(description) %(fragment_condition)s
800 OR
801 description %(fragment_condition)s
802 ORDER BY list_label
803 ) AS ordered_matches
804 LIMIT 50
805 """
806 mp = gmMatchProvider.cMatchProvider_SQL2(queries=query)
807 mp.setThresholds(1, 3, 5)
808 gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
809 self.SetToolTip(_("Select an organizational category."))
810 self.matcher = mp
811 self.selection_only = True
812
813 #============================================================
815 """A list for managing organizations."""
816
818
819 gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
820
821 self.refresh_callback = self.refresh
822 self.new_callback = self._add
823 self.edit_callback = self._edit
824 self.delete_callback = self._del
825
826 self.__init_ui()
827 self.refresh()
828 #--------------------------------------------------------
829 # external API
830 #--------------------------------------------------------
832 orgs = gmOrganization.get_orgs(order_by = 'organization, l10n_category')
833 items = [ [o['organization'], o['l10n_category'], o['pk_org']] for o in orgs ]
834 self._LCTRL_items.set_string_items(items)
835 self._LCTRL_items.set_column_widths(widths = [wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE])
836 self._LCTRL_items.set_data(orgs)
837
838 for idx in range(len(orgs)):
839 org = orgs[idx]
840 if org['is_praxis']:
841 self._LCTRL_items.SetItemTextColour(idx, wx.Colour('RED'))
842 break
843 #--------------------------------------------------------
844 # event handlers
845 #--------------------------------------------------------
848 #--------------------------------------------------------
851 #--------------------------------------------------------
854 #--------------------------------------------------------
857 #--------------------------------------------------------
858 # internal helpers
859 #--------------------------------------------------------
861 self._LCTRL_items.set_columns(columns = [_('Organization'), _('Category'), '#'])
862 self._LCTRL_items.SetToolTip(_('Organizations registered in GNUmed.'))
863 self._LCTRL_items.item_tooltip_callback = self.get_tooltip
864 #self._LCTRL_items.set_column_widths(widths = [wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE])
865 #--------------------------------------------------------
870 #============================================================
871 from Gnumed.wxGladeWidgets import wxgOrganizationManagerDlg
872
874
876
877 wxgOrganizationManagerDlg.wxgOrganizationManagerDlg.__init__(self, *args, **kwargs)
878
879 self.Centre(direction = wx.BOTH)
880
881 self._PNL_address.type_is_editable = False
882 self._PNL_orgs.select_callback = self._on_org_selected
883 self._PNL_units.select_callback = self._on_unit_selected
884 self._PNL_comms.message = _('Communication channels')
885 self._PNL_ids.message = _('External IDs')
886
887 # FIXME: find proper button
888 #self._PNL_units.MoveAfterInTabOrder(self._PNL_orgs._BTN_)
889
890 self._on_org_selected(None)
891 self._PNL_orgs._LCTRL_items.SetFocus()
892 #--------------------------------------------------------
893 # event handlers
894 #--------------------------------------------------------
898 #--------------------------------------------------------
909
910 #============================================================
911 # main
912 #------------------------------------------------------------
913 if __name__ == "__main__":
914
915 if len(sys.argv) < 2:
916 sys.exit()
917
918 if sys.argv[1] != 'test':
919 sys.exit()
920
921 from Gnumed.pycommon import gmPG2
922
923 #--------------------------------------------------------
925 app = wx.PyWidgetTester(size = (200, 50))
926 pw = cOrganizationPhraseWheel(app.frame, -1)
927 app.frame.Show(True)
928 app.MainLoop()
929 #--------------------------------------------------------
931 app = wx.PyWidgetTester(size = (200, 50))
932 pw = cOrgUnitPhraseWheel(app.frame, -1)
933 app.frame.Show(True)
934 app.MainLoop()
935 #--------------------------------------------------------
937 conn = gmPG2.get_connection()
938 app = wx.PyWidgetTester(size = (600, 600))
939 dlg = cOrganizationManagerDlg(app.frame, -1, size = (600, 600))
940 dlg.SetSize((600, 600))
941 dlg.ShowModal()
942 # app.SetWidget(dlg, -1)
943 app.MainLoop()
944 #--------------------------------------------------------
945 #test_org_unit_prw()
946 #test_org_prw()
947 test()
948
949 #======================================================================
950
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sat Feb 29 02:55:27 2020 | http://epydoc.sourceforge.net |