GoodERP
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

552 linhas
22KB

  1. <openerp>
  2. <data>
  3. <record model="ir.ui.view" id="timesheet_form">
  4. <field name="name">今日</field>
  5. <field name="model">timesheet</field>
  6. <field name="arch" type="xml">
  7. <form string="今日">
  8. <sheet>
  9. <group>
  10. <group>
  11. <field name="user_id"/>
  12. <field name="date"/>
  13. </group>
  14. </group>
  15. <notebook>
  16. <page name='task' string='待办事项'>
  17. <field name="task_ids" domain="[('user_id', '=', uid)]">
  18. <list string="计划">
  19. <field name="name" optional="show"/>
  20. <field name="next_action" optional="show"/>
  21. <field name="next_datetime" optional="show"/>
  22. <field name="status" optional="show"/>
  23. <field name="note" string="任务描述" optional="show"/>
  24. </list>
  25. </field>
  26. </page>
  27. <page name='timeline' string='工作记录'>
  28. <field name="timeline_ids" mode="list,kanban">
  29. <list string="进展" editable='bottom'>
  30. <field name='task_id' domain="[('user_id', 'in', [uid, False]),('status.state', '!=', 'done')]" optional="show"/>
  31. <field name='just_done' optional="show"/>
  32. <field name='next_action' optional="show"/>
  33. <field name='hours' sum="全天合计" groups='task.group_task_hours' optional="show"/>
  34. <field name="user_id" optional="show"/>
  35. <field name='next_datetime' optional="show"/>
  36. <field name='set_status' optional="show"/>
  37. <field name="create_date" string='创建时间' readonly='1' optional="show"/>
  38. </list>
  39. <kanban class="o_kanban_mobile">
  40. <field name='color'/>
  41. <templates>
  42. <t t-name="kanban-box">
  43. <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click_edit">
  44. <div class="o_dropdown_kanban dropdown">
  45. <a class="dropdown-toggle btn" data-toggle="dropdown" href="#" >
  46. <span class="fa fa-bars fa-lg"/>
  47. </a>
  48. <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
  49. <li><a type="delete">删除</a></li>
  50. <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
  51. </ul>
  52. </div>
  53. <span t-attf-class="oe_kanban_content">
  54. <field name="create_date"/>
  55. <field name="task_id"/>
  56. <field name="just_done"/>
  57. <div groups='task.group_task_hours'>
  58. <field name="hours"/>
  59. </div>
  60. </span>
  61. </div>
  62. </t>
  63. </templates>
  64. </kanban>
  65. </field>
  66. </page>
  67. </notebook>
  68. </sheet>
  69. </form>
  70. </field>
  71. </record>
  72. <record id="timesheet_kanban" model="ir.ui.view">
  73. <field name="name">timesheet kanban</field>
  74. <field name="model">timesheet</field>
  75. <field name="arch" type="xml">
  76. <kanban class="o_kanban_mobile">
  77. <field name="date"/>
  78. <field name="user_id"/>
  79. <field name="color"/>
  80. <templates>
  81. <t t-name="kanban-box">
  82. <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
  83. <ul class="oe_kanban_colorpicker" data-field="color"/>
  84. <div class="o_kanban_image">
  85. <t>
  86. <img t-att-src="kanban_image('res.users', 'image_1920', record.user_id.raw_value)" t-att-title="record.user_id.value" t-att-alt="record.user_id.value" class="oe_module_icon"/>
  87. </t>
  88. <p>
  89. <t t-esc="record.user_id.value"/>
  90. </p>
  91. </div>
  92. <p>
  93. <t t-esc="record.date.value"/>
  94. <!--<t t-esc="record.user_id.value"/>-->
  95. </p>
  96. </div>
  97. </t>
  98. </templates>
  99. </kanban>
  100. </field>
  101. </record>
  102. <record model="ir.ui.view" id="project_list">
  103. <field name="name">项目列表</field>
  104. <field name="model">project</field>
  105. <field name="arch" type="xml">
  106. <list>
  107. <field name="name"/>
  108. <field name="customer_id"/>
  109. <field name="type_id"/>
  110. <field name="plan_hours" groups='task.group_task_hours'/>
  111. <field name="hours" groups='task.group_task_hours'/>
  112. <field name='active' invisible='1'/>
  113. </list>
  114. </field>
  115. </record>
  116. <record model="ir.ui.view" id="project_form">
  117. <field name="name">项目</field>
  118. <field name="model">project</field>
  119. <field name="arch" type="xml">
  120. <form string="项目">
  121. <sheet>
  122. <group>
  123. <group>
  124. <field name="name"/>
  125. <field name="customer_id"
  126. domain="[('c_category_id', '!=', False)]"
  127. options="{'no_create': True, 'no_open': True}"/>
  128. <field name="type_id"/>
  129. <field name="address" widget='url'/>
  130. </group>
  131. <group>
  132. <field name="plan_hours" groups='task.group_task_hours,base.group_portal'/>
  133. <field name="hours" groups='task.group_task_hours,base.group_portal'/>
  134. </group>
  135. </group>
  136. <notebook>
  137. <page name='task' string='任务'>
  138. <field name="task_ids">
  139. <list string="任务" editable='bottom'>
  140. <field name="sequence" widget="handle" optional="show"/>
  141. <field name="name" optional="show"/>
  142. <field name="user_id" optional="show"/>
  143. <field name="next_action" optional="show"/>
  144. <field name="next_datetime" optional="show"/>
  145. <field name="plan_hours" groups='task.group_task_hours,base.group_portal' sum="计划工时" optional="show"/>
  146. <field name="hours" groups='task.group_task_hours,base.group_portal' sum="实际工时" optional="show"/>
  147. </list>
  148. </field>
  149. </page>
  150. <page name='project_invoice' string='发票行'>
  151. <field name="invoice_ids">
  152. <list string="发票" editable='bottom'>
  153. <field name="date_due" optional="show"/>
  154. <field name="tax_rate" optional="show"/>
  155. <field name="amount" optional="show"/>
  156. <field name="tax_amount" optional="show"/>
  157. <field name="invoice_id" optional="show"/>
  158. <button name='make_invoice' type='object' string='生成发票' class='oe_highlight'
  159. invisible="invoice_id"/>
  160. </list>
  161. </field>
  162. </page>
  163. </notebook>
  164. <field name="note" placeholder='描述......'/>
  165. <div class="oe_chatter">
  166. <field name="message_follower_ids" widget="mail_followers"/>
  167. <field name="message_ids" widget="mail_thread"/>
  168. </div>
  169. </sheet>
  170. </form>
  171. </field>
  172. </record>
  173. <record model="ir.ui.view" id="task_list">
  174. <field name="name">任务列表</field>
  175. <field name="model">task</field>
  176. <field name="arch" type="xml">
  177. <list>
  178. <field name="sequence" widget="handle"/>
  179. <field name="project_id"/>
  180. <field name="project_type_id"/>
  181. <field name="name"/>
  182. <field name="user_id"/>
  183. <field name="next_action"/>
  184. <field name="next_datetime"/>
  185. <field name="status"/>
  186. <field name="is_schedule"/>
  187. <button name='assign_to_me' type='object' string='指派给我' class='oe_highlight'
  188. invisible="user_id"/>
  189. </list>
  190. </field>
  191. </record>
  192. <record model="ir.ui.view" id="task_form">
  193. <field name="name">任务</field>
  194. <field name="model">task</field>
  195. <field name="arch" type="xml">
  196. <form string="任务">
  197. <header>
  198. <field name="status" widget="statusbar" clickable="true"/>
  199. </header>
  200. <sheet>
  201. <group>
  202. <group>
  203. <field name="project_id" options="{'no_create': True}"/>
  204. <field name="project_type_id"/>
  205. <field name="name"/>
  206. <field name="plan_hours" groups='task.group_task_hours'/>
  207. <field name="user_id"/>
  208. </group>
  209. <group>
  210. <field name="next_action"/>
  211. <field name="next_datetime"/>
  212. <field name="hours" groups='task.group_task_hours'/>
  213. <field name="tag_ids" widget="many2many_tags"/>
  214. </group>
  215. </group>
  216. <field name="timeline_ids">
  217. <list string="进展" create='0' edit='0'>
  218. <field name="create_uid" string='创建人' optional="show"/>
  219. <field name="create_date" string='创建时间' optional="show"/>
  220. <field name='hours' sum="全天合计" groups='task.group_task_hours' optional="show"/>
  221. <field name='just_done' optional="show"/>
  222. </list>
  223. </field>
  224. <field name="note" placeholder='描述......'/>
  225. </sheet>
  226. <div class="oe_chatter">
  227. <field name="message_follower_ids" widget="mail_followers"/>
  228. <field name="message_ids" widget="mail_thread"/>
  229. </div>
  230. </form>
  231. </field>
  232. </record>
  233. <record id="task_kanban" model="ir.ui.view">
  234. <field name="name">task kanban</field>
  235. <field name="model">task</field>
  236. <field name="arch" type="xml">
  237. <kanban class="o_kanban_mobile">
  238. <field name="name"/>
  239. <field name="user_id"/>
  240. <field name="project_id"/>
  241. <field name="next_action"/>
  242. <field name="next_datetime"/>
  243. <field name="hours"/>
  244. <field name="plan_hours"/>
  245. <field name="color"/>
  246. <field name="priority"/>
  247. <templates>
  248. <t t-name="kanban-box">
  249. <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
  250. <div class="o_kanban_image">
  251. <t>
  252. <img t-att-src="kanban_image('res.users', 'image_1920', record.user_id.raw_value)" t-att-title="record.user_id.value" t-att-alt="record.user_id.value" class="oe_module_icon"/>
  253. </t>
  254. <p>
  255. <t t-esc="record.user_id.value"/>
  256. </p>
  257. </div>
  258. <div class="oe_kanban_details">
  259. <p>
  260. <t t-esc="record.project_id.value"/>
  261. <t t-esc="record.name.value"/>
  262. <div groups='task.group_task_hours'>
  263. <t t-esc="record.hours.value"/>
  264. /
  265. <t t-esc="record.plan_hours.value"/>
  266. </div>
  267. </p>
  268. <p>
  269. <t t-esc="record.next_datetime.value"/>
  270. </p>
  271. <p>
  272. <t t-esc="record.next_action.value"/>
  273. </p>
  274. <field name="priority" widget="priority"/>
  275. </div>
  276. </div>
  277. </t>
  278. </templates>
  279. </kanban>
  280. </field>
  281. </record>
  282. <record id="task_search" model="ir.ui.view">
  283. <field name="name">task.search</field>
  284. <field name="model">task</field>
  285. <field name="arch" type="xml">
  286. <search string="Search Task">
  287. <field name="name" filter_domain="['|',('project_id','ilike',self),('name', 'ilike', self)]"/>
  288. <field name="user_id"/>
  289. <field name="status"/>
  290. <separator/>
  291. <filter string="我的任务" name="assigned_to_me"
  292. domain="[('user_id', '=', uid)]"
  293. help="指派给我的任务"/>
  294. <filter string="未指派的" name="unassigned"
  295. domain="[('user_id','=', False)]" help="未指派的任务"/>
  296. <separator/>
  297. <group expand="0" string="分组">
  298. <filter name="group_user_id" string="指派给" context="{'group_by':'user_id'}"/>
  299. <filter name="project_id" string="项目" context="{'group_by':'project_id'}"/>
  300. <filter name="group_status" string="阶段" context="{'group_by':'status'}"/>
  301. <separator orientation="vertical" />
  302. <filter string="创建月份" context="{'group_by':'create_date:month'}" name="month"/>
  303. </group>
  304. </search>
  305. </field>
  306. </record>
  307. <record model="ir.ui.view" id="task_calendar">
  308. <field name="name">task.calendar</field>
  309. <field name="model">task</field>
  310. <field name="priority" eval="2"/>
  311. <field name="arch" type="xml">
  312. <calendar color="user_id" date_start="next_datetime" string="任务安排">
  313. <field name="project_id"/>
  314. <field name="name"/>
  315. <field name="next_action"/>
  316. </calendar>
  317. </field>
  318. </record>
  319. <record model="ir.ui.view" id="timeline_list">
  320. <field name="name">工作记录</field>
  321. <field name="model">timeline</field>
  322. <field name="arch" type="xml">
  323. <list create='0' edit='0' default_order='create_date desc'>
  324. <field name='task_id' optional="show"/>
  325. <field name='project_id' optional="show"/>
  326. <field name='just_done' optional="show"/>
  327. <field name='need_help'/>
  328. <field name='hours' sum="全天合计" groups='task.group_task_hours' optional="show"/>
  329. <field name='set_status' optional="show"/>
  330. <field name="create_uid" string='创建人' optional="show"/>
  331. <field name="create_date" string='创建时间' optional="show"/>
  332. </list>
  333. </field>
  334. </record>
  335. <record id="timeline_search" model="ir.ui.view">
  336. <field name="name">timeline.search</field>
  337. <field name="model">timeline</field>
  338. <field name="arch" type="xml">
  339. <search string="工作记录">
  340. <field name="task_id"/>
  341. <field name="project_id"/>
  342. <field name="create_uid" string='创建人'/>
  343. <separator/>
  344. <filter string="今日" name="today_timeline"
  345. domain="[('create_date', '&gt;=', time.strftime('%Y-%m-%d 00:00:00')),
  346. ('create_date', '&lt;=', time.strftime('%Y-%m-%d 23:59:59'))]"
  347. help="今日工作记录"/>
  348. <filter name="group_create_uid" string="创建人" context="{'group_by':'create_uid'}"/>
  349. <filter name="group_project_id" string="项目" context="{'group_by':'project_id'}"/>
  350. <separator/>
  351. <filter string="创建月份" context="{'group_by':'create_date:month'}" name="month"/>
  352. </search>
  353. </field>
  354. </record>
  355. <!-- timeline Form View -->
  356. <record id="timeline_form" model="ir.ui.view">
  357. <field name="name">timeline.form</field>
  358. <field name="model">timeline</field>
  359. <field name="arch" type="xml">
  360. <form string="timeline">
  361. <sheet>
  362. <group>
  363. <field name="task_id" domain="[('user_id', 'in', [uid, False]),('status.state', '!=', 'done')]"/>
  364. <field name="just_done"/>
  365. <field name="hours" groups='task.group_task_hours' class="oe_inline"/>
  366. <field name='next_action'/>
  367. <field name='next_datetime'/>
  368. <field name='set_status'/>
  369. <field name='user_id'/>
  370. <field name="create_date" string="创建时间" readonly='1'/>
  371. </group>
  372. </sheet>
  373. </form>
  374. </field>
  375. </record>
  376. <record model="ir.ui.view" id="task_status_list">
  377. <field name="name">任务阶段</field>
  378. <field name="model">task.status</field>
  379. <field name="arch" type="xml">
  380. <list editable='bottom'>
  381. <field name="sequence" widget="handle"/>
  382. <field name="name"/>
  383. <field name="project_type_id"/>
  384. <field name="state"/>
  385. </list>
  386. </field>
  387. </record>
  388. <record model="ir.ui.view" id="task_status_form">
  389. <field name="name">任务阶段</field>
  390. <field name="model">task.status</field>
  391. <field name="arch" type="xml">
  392. <form>
  393. <group>
  394. <field name="sequence"/>
  395. <field name="name"/>
  396. </group>
  397. </form>
  398. </field>
  399. </record>
  400. <!--门户用户单独的项目视图-->
  401. <record model="ir.ui.view" id="project_portal_list">
  402. <field name="name">项目列表</field>
  403. <field name="model">project</field>
  404. <field name="arch" type="xml">
  405. <list create='0'>
  406. <field name="name"/>
  407. <field name="customer_id"/>
  408. <field name="plan_hours" groups='task.group_task_hours'/>
  409. <field name="hours" groups='task.group_task_hours'/>
  410. </list>
  411. </field>
  412. </record>
  413. <record model="ir.ui.view" id="project_portal_form">
  414. <field name="name">项目</field>
  415. <field name="model">project</field>
  416. <field name="arch" type="xml">
  417. <form string="项目" edit='0' create='0'>
  418. <sheet>
  419. <group>
  420. <group>
  421. <field name="name"/>
  422. <field name="customer_id"/>
  423. <field name="address" widget='url'/>
  424. </group>
  425. <group>
  426. <field name="plan_hours" groups='task.group_task_hours,base.group_portal'/>
  427. <field name="hours" groups='task.group_task_hours,base.group_portal'/>
  428. </group>
  429. </group>
  430. <notebook>
  431. <page name='task' string='任务'>
  432. <field name="task_ids">
  433. <list string="任务" editable='bottom'>
  434. <field name="sequence" widget="handle" optional="show"/>
  435. <field name="name" optional="show"/>
  436. <field name="user_id" optional="show"/>
  437. <field name="next_action" optional="show"/>
  438. <field name="next_datetime" optional="show"/>
  439. <field name="plan_hours" groups='task.group_task_hours,base.group_portal' sum="计划工时" optional="show"/>
  440. <field name="hours" groups='task.group_task_hours,base.group_portal' sum="实际工时" optional="show"/>
  441. </list>
  442. </field>
  443. </page>
  444. <page name='project_invoice' string='发票行'>
  445. <field name="invoice_ids">
  446. <list string="发票" editable='bottom'>
  447. <field name="date_due" optional="show"/>
  448. <field name="tax_rate" optional="show"/>
  449. <field name="amount" optional="show"/>
  450. <field name="tax_amount" optional="show"/>
  451. <field name="invoice_id" optional="show"/>
  452. <button name='make_invoice' type='object' string='生成发票' class='oe_highlight'
  453. invisible="invoice_id"/>
  454. </list>
  455. </field>
  456. </page>
  457. </notebook>
  458. <field name="note" placeholder='描述......'/>
  459. <div class="oe_chatter">
  460. <field name="message_follower_ids" widget="mail_followers"/>
  461. <field name="message_ids" widget="mail_thread"/>
  462. </div>
  463. </sheet>
  464. </form>
  465. </field>
  466. </record>
  467. <!--action-->
  468. <record model="ir.actions.act_window" id="action_project">
  469. <field name="name">项目</field>
  470. <field name="res_model">project</field>
  471. <field name="view_mode">list,form</field>
  472. <field name="context">{'type':'project'}</field>
  473. <field name="help" type="html">
  474. <p class="oe_view_nocontent_create">点击创建一个项目</p>
  475. </field>
  476. </record>
  477. <!--门户用户只能查看他关注的项目-->
  478. <record model="ir.actions.act_window" id="action_project_portal">
  479. <field name="name">项目</field>
  480. <field name="res_model">project</field>
  481. <field name="view_mode">list,form</field>
  482. <field name="context">{'type':'project'}</field>
  483. <field name="view_ids" eval="[(5, 0, 0),
  484. (0, 0, {'view_mode': 'list', 'view_id': ref('project_portal_list')}),
  485. (0, 0, {'view_mode': 'form', 'view_id': ref('project_portal_form')})]"/>
  486. <field name="help" type="html">
  487. <p class="oe_view_nocontent_create">您还未关注一个项目</p>
  488. </field>
  489. </record>
  490. <record model="ir.actions.act_window" id="action_task">
  491. <field name="name">任务</field>
  492. <field name="res_model">task</field>
  493. <field name="view_mode">kanban,calendar,list,form,search</field>
  494. <field name="context">{
  495. 'search_default_group_status': 1,
  496. }
  497. </field>
  498. <field name="help" type="html">
  499. <p class="oe_view_nocontent_create">点击创建一个任务</p>
  500. </field>
  501. </record>
  502. <record model="ir.actions.act_window" id="action_timeline">
  503. <field name="name">工作日志</field>
  504. <field name="res_model">timeline</field>
  505. <field name="view_mode">list,pivot</field>
  506. <field name="context">{'search_default_today_timeline': 1}</field>
  507. </record>
  508. <record model="ir.actions.act_window" id="action_timesheet_today">
  509. <field name="name">今日工作日志</field>
  510. <field name="res_model">timesheet</field>
  511. <field name="view_mode">kanban,form</field>
  512. <field name="domain">[('date', '=', context_today().strftime('%Y-%m-%d')),('user_id', '=', uid)]</field>
  513. <field name="help" type="html">
  514. <p class="oe_view_nocontent_create">点击创建今日的工作日志</p>
  515. </field>
  516. </record>
  517. <record model="ir.actions.act_window" id="action_task_status">
  518. <field name="name">任务阶段</field>
  519. <field name="res_model">task.status</field>
  520. <field name="view_mode">list</field>
  521. <field name="help" type="html">
  522. <p class="oe_view_nocontent_create">点击创建一个任务阶段</p>
  523. </field>
  524. </record>
  525. <menuitem name="任务" id="menu_task_root" web_icon="task,static/description/icon.png"
  526. groups='task.group_task' sequence='200'/>
  527. <menuitem name="今日" id="menu_timesheet" parent="menu_task_root"
  528. action="action_timesheet_today" sequence='1'/>
  529. <menuitem name="主数据" id="menu_task_data" parent="menu_task_root" sequence='5'/>
  530. <menuitem name="任务" id="menu_task" parent="menu_task_data"
  531. action="action_task" sequence='1'/>
  532. <menuitem name="项目" id="menu_project" parent="menu_task_data"
  533. action="action_project" sequence='5' groups='task.group_task'/>
  534. <menuitem name="报表" id="menu_task_report" parent="menu_task_root"
  535. groups='task.group_task_manager' sequence='10'/>
  536. <menuitem name="工作日志" id="menu_task_timesheet" parent="menu_task_report"
  537. action="action_timeline" sequence='1'/>
  538. <menuitem name="设置" id="menu_task_configuration" parent="menu_task_root"
  539. groups='task.group_task_manager' sequence='15'/>
  540. <menuitem name="任务阶段" id="menu_task_status" parent="menu_task_configuration"
  541. action="action_task_status" sequence='1'/>
  542. <!--门户用户的项目菜单-->
  543. <menuitem name="项目" id="menu_project_portal" web_icon="task,static/description/icon.png"
  544. action="action_project_portal" groups='base.group_portal'/>
  545. </data>
  546. </openerp>
上海开阖软件有限公司 沪ICP备12045867号-1