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.

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