GoodERP
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

537 lines
21KB

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