00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 from Koo.Model.KooModel import *
00029 from Koo.View.AbstractParser import *
00030 from Calendar import *
00031
00032 from PyQt4.QtCore import *
00033 from PyQt4.QtGui import *
00034
00035
00036 class CalendarParser( AbstractParser ):
00037
00038 def create(self, viewId, parent, model, rootNode, fields):
00039 self.screen = parent
00040 view = CalendarView( parent )
00041 view.id = viewId
00042
00043 attrs = Common.nodeAttributes(rootNode)
00044 view.setOnWriteFunction( attrs.get('on_write', '') )
00045
00046 if not view.title:
00047 view.title = attrs.get('string', _('Unknown'))
00048
00049 startDate = attrs.get('date_start')
00050 stopDate = attrs.get('date_stop')
00051 dateDelay = attrs.get('date_delay')
00052 color = attrs.get('color')
00053
00054 header = []
00055 header.append( startDate )
00056 if dateDelay:
00057 header.append( dateDelay )
00058 if color:
00059 header.append( color )
00060 for node in rootNode.childNodes:
00061 node_attrs = Common.nodeAttributes(node)
00062 if node.localName == 'field':
00063 header.append( node_attrs['name'] )
00064
00065
00066
00067
00068
00069
00070 model = KooModel( view )
00071 model.setMode( KooModel.ListMode )
00072 model.setRecordGroup( self.screen.group )
00073 model.setFields( fields )
00074 model.setFieldsOrder( header )
00075 model.setReadOnly( not attrs.get('editable', False) )
00076 model.setShowBackgroundColor( True )
00077
00078 view.setReadOnly( not attrs.get('editable', False) )
00079 view.setModel( model )
00080 view.setModelDateColumn( 0 )
00081 column = 1
00082 if dateDelay:
00083 view.setModelDurationColumn( column )
00084 column += 1
00085 if color:
00086 view.setModelColorColumn( column )
00087 column += 1
00088 view.setModelTitleColumn( column )
00089
00090 return view
00091
00092
00093