Loading...
 
Skip to main content

History: Timesheets

Source of version: 3

Copy to clipboard
            !! About
This is a demo profile that sets up Tiki as a timesheet tracker - it enables tracker feature and sets up a sample timesheet tracker with ability to import into/export from it. Main inspiration comes from [https://github.com/federatedbookkeeping/timesheets|Federated timesheets project]

!! Requirements
Current Tiki master version (future Tiki 25). Timesheet tracking itself will work with Tiki 21+ but special import/export features will only be available in latest Tiki version.

!! Profiles Code (YAML)
{CODE(caption=>YAML,wrap=1)}
permissions: {  }
preferences:
  feature_trackers: 'y'
  tracker_change_field_type: 'y'
  tracker_field_rules: 'y'
  tracker_refresh_itemslist_detail: 'y'
  tracker_show_comments_below: 'y'
  tracker_system_currency: 'y'
  tracker_tabular_enabled: 'y'
  trackerfield_autoincrement: 'y'
  trackerfield_currency: 'y'
  trackerfield_dropdownother: 'y'
  trackerfield_dynamiclist: 'y'
  trackerfield_file: 'y'
  trackerfield_groupselector: 'y'
  trackerfield_image: 'y'
  trackerfield_itemslist: 'y'
  trackerfield_math: 'y'
  trackerfield_relation: 'y'
  trackerfield_usergroups: 'y'
  wikiplugin_colorbox: 'y'
  wikiplugin_customsearch: 'y'
  wikiplugin_footnote: 'y'
  wikiplugin_icon: 'y'
  wikiplugin_jq: 'y'
  wikiplugin_js: 'y'
  wikiplugin_listexecute: 'y'
  wikiplugin_objectlink: 'y'
  wikiplugin_pivottable: 'y'
  wikiplugin_preference: 'y'
  wikiplugin_preview: 'y'
  wikiplugin_sign: 'y'
  wikiplugin_tr: 'y'
  wikiplugin_trackercalendar: 'y'
  wikiplugin_trackerquerytemplate: 'y'
  feature_wiki: 'y'
  wikiHomePage: '$profileobject:timesheets_homepage$'
objects:
  0:
    type: tracker
    ref: timesheets
    _id: '71'
    _timestamp: 1649759998
    data:
      name: Timesheets
      description: ''
      restrict_end: '0'
      form_classes: ''
      restrict_start: '0'
  1:
    type: tracker_field
    ref: timesheets_tsUser
    _id: '986'
    _timestamp: 1649759998
    data:
      name: User
      permname: tsUser
      tracker: '$profileobject:timesheets$'
      options:
        autoassign: 1
        owner: 1
        notify_template_format: text
        groupIds:
          - 0
        canChangeGroupIds:
          - 0
        showRealname: 1
      type: user
      order: '0'
      visby: {  }
      editby: {  }
      flags:
        - link
        - list
        - public
        - mandatory
  2:
    type: tracker_field
    ref: timesheets_tsProject
    _id: '990'
    _timestamp: 1649759998
    data:
      name: Project
      permname: tsProject
      tracker: '$profileobject:timesheets$'
      options:
        samerow: 1
        autocomplete: 'n'
        exact: 'n'
      type: text_field
      order: '10'
      visby: {  }
      editby: {  }
      flags:
        - link
        - list
        - public
  3:
    type: tracker_field
    ref: timesheets_tsTask
    _id: '991'
    _timestamp: 1649759998
    data:
      name: Task
      permname: tsTask
      tracker: '$profileobject:timesheets$'
      options:
        samerow: 1
        autocomplete: 'n'
        exact: 'n'
      type: text_field
      order: '20'
      visby: {  }
      editby: {  }
      flags:
        - link
        - list
        - public
  4:
    type: tracker_field
    ref: timesheets_tsDescription
    _id: '989'
    _timestamp: 1649759998
    data:
      name: Description
      permname: tsDescription
      tracker: '$profileobject:timesheets$'
      options:
        distinct: 'n'
        wysiwyg: 'n'
        samerow: 1
      type: text_area
      order: '30'
      visby: {  }
      editby: {  }
      flags:
        - link
        - list
        - public
  5:
    type: tracker_field
    ref: timesheets_tsStartTime
    _id: '992'
    _timestamp: 1649759998
    data:
      name: 'Start Time'
      permname: tsStartTime
      tracker: '$profileobject:timesheets$'
      options:
        datetime: dt
        blankdate: blank
      type: calendar
      order: '40'
      visby: {  }
      editby: {  }
      flags:
        - list
        - public
  6:
    type: tracker_field
    ref: timesheets_tsEndTime
    _id: '993'
    _timestamp: 1649759998
    data:
      name: 'End Time'
      permname: tsEndTime
      tracker: '$profileobject:timesheets$'
      options:
        datetime: dt
        blankdate: blank
      type: calendar
      order: '50'
      visby: {  }
      editby: {  }
      flags:
        - list
        - public
  7:
    type: tracker_field
    ref: timesheets_tsDate
    _id: '987'
    _timestamp: 1649759998
    data:
      name: Date
      permname: tsDate
      tracker: '$profileobject:timesheets$'
      options:
        datetime: d
        blankdate: blank
      type: calendar
      order: '60'
      visby: {  }
      editby: {  }
      flags:
        - list
        - public
  8:
    type: tracker_field
    ref: timesheets_tsDuration
    _id: '988'
    _timestamp: 1649759998
    data:
      name: Duration
      permname: tsDuration
      tracker: '$profileobject:timesheets$'
      options:
        minutes: 1
        hours: 1
      type: DUR
      order: '70'
      visby: {  }
      editby: {  }
      flags:
        - list
        - public
  9:
    type: tracker_field
    ref: timesheets_tsMinutesCalculated
    _id: '994'
    _timestamp: 1649759998
    data:
      name: 'Minutes (Calculated)'
      permname: tsMinutesCalculated
      tracker: '$profileobject:timesheets$'
      options:
        calculation: '(coalesce (round (div tsDuration 60) 0) (round (div (sub tsEndTime tsStartTime) 60) 0) 0)'
        recalculate: index
      type: math
      order: '80'
      visby: {  }
      editby: {  }
      flags:
        - link
        - list
        - public
  10:
    type: tracker_field
    ref: timesheets_tsHoursCalculated
    _id: '995'
    _timestamp: 1649759998
    data:
      name: 'Hours (Calculated)'
      permname: tsHoursCalculated
      tracker: '$profileobject:timesheets$'
      options:
        calculation: '(round (div tsMinutesCalculated 60) 2)'
        recalculate: index
      type: math
      order: '90'
      visby: {  }
      editby: {  }
      flags:
        - link
        - list
        - public
  11:
    type: tracker_option
    ref: timesheets_sort_default_field
    _id: sort_default_field-71
    _timestamp: 1649759998
    data:
      tracker: '$profileobject:timesheets$'
      name: sort_default_field
      value: modification
  12:
    type: tabular
    ref: timesheet_full
    _id: '16'
    _timestamp: 1649764847
    data:
      name: 'Timesheet - Full'
      tracker: '$profileobject:timesheets$'
      fields:
        -
          label: 'Item ID'
          field: itemId
          mode: id
          remoteField: ''
          displayAlign: left
          isPrimary: 'y'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: User
          field: '$profileobject:timesheets_tsUser$'
          mode: username
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: Project
          field: '$profileobject:timesheets_tsProject$'
          mode: default
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: Task
          field: '$profileobject:timesheets_tsTask$'
          mode: default
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: Description
          field: '$profileobject:timesheets_tsDescription$'
          mode: default-raw
          remoteField: Issue
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: 'Start Time'
          field: '$profileobject:timesheets_tsStartTime$'
          mode: 'long datetime format'
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: 'End Time'
          field: '$profileobject:timesheets_tsEndTime$'
          mode: 'long datetime format'
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: Date
          field: '$profileobject:timesheets_tsDate$'
          mode: yyyy-mm-dd
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: Duration
          field: '$profileobject:timesheets_tsDuration$'
          mode: default
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: 'Minutes (Calculated)'
          field: '$profileobject:timesheets_tsMinutesCalculated$'
          mode: default
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: 'Hours (Calculated)'
          field: '$profileobject:timesheets_tsHoursCalculated$'
          mode: default
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
      filters: {  }
      config:
        simple_headers: 1
        import_update: 1
        ignore_blanks: 0
        import_transaction: 0
        bulk_import: 0
        skip_unmodified: 0
        encoding: ''
      odbc_config: {  }
  13:
    type: tabular
    ref: timesheet_time
    _id: '17'
    _timestamp: 1649764859
    data:
      name: 'Timesheet - Time'
      tracker: '$profileobject:timesheets$'
      fields:
        -
          label: 'User name'
          field: '$profileobject:timesheets_tsUser$'
          mode: username
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: 'Project name'
          field: '$profileobject:timesheets_tsProject$'
          mode: default
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: Issue
          field: '$profileobject:timesheets_tsDescription$'
          mode: default-raw
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: Time
          field: '$profileobject:timesheets_tsDuration$'
          mode: default
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: 'Start date'
          field: '$profileobject:timesheets_tsStartTime$'
          mode: 'long datetime format'
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
        -
          label: 'End date'
          field: '$profileobject:timesheets_tsEndTime$'
          mode: 'long datetime format'
          remoteField: ''
          displayAlign: left
          isPrimary: 'n'
          isReadOnly: 'n'
          isExportOnly: 'n'
          isUniqueKey: 'n'
      filters: {  }
      config:
        simple_headers: 1
        import_update: 1
        ignore_blanks: 0
        import_transaction: 0
        bulk_import: 0
        skip_unmodified: 0
        encoding: ''
      odbc_config: {  }
  14:
    type: preference
    ref: null
    _id: feature_trackers
    _timestamp: 1649765553
    data:
      _is_fake: true
  15:
    type: preference
    ref: null
    _id: tracker_change_field_type
    _timestamp: 1649765553
    data:
      _is_fake: true
  16:
    type: preference
    ref: null
    _id: tracker_field_rules
    _timestamp: 1649765553
    data:
      _is_fake: true
  17:
    type: preference
    ref: null
    _id: tracker_refresh_itemslist_detail
    _timestamp: 1649765554
    data:
      _is_fake: true
  18:
    type: preference
    ref: null
    _id: tracker_show_comments_below
    _timestamp: 1649765554
    data:
      _is_fake: true
  19:
    type: preference
    ref: null
    _id: tracker_system_currency
    _timestamp: 1649765554
    data:
      _is_fake: true
  20:
    type: preference
    ref: null
    _id: tracker_tabular_enabled
    _timestamp: 1649765554
    data:
      _is_fake: true
  21:
    type: preference
    ref: null
    _id: trackerfield_autoincrement
    _timestamp: 1649765554
    data:
      _is_fake: true
  22:
    type: preference
    ref: null
    _id: trackerfield_currency
    _timestamp: 1649765554
    data:
      _is_fake: true
  23:
    type: preference
    ref: null
    _id: trackerfield_dropdownother
    _timestamp: 1649765555
    data:
      _is_fake: true
  24:
    type: preference
    ref: null
    _id: trackerfield_dynamiclist
    _timestamp: 1649765555
    data:
      _is_fake: true
  25:
    type: preference
    ref: null
    _id: trackerfield_file
    _timestamp: 1649765555
    data:
      _is_fake: true
  26:
    type: preference
    ref: null
    _id: trackerfield_groupselector
    _timestamp: 1649765555
    data:
      _is_fake: true
  27:
    type: preference
    ref: null
    _id: trackerfield_image
    _timestamp: 1649765555
    data:
      _is_fake: true
  28:
    type: preference
    ref: null
    _id: trackerfield_itemslist
    _timestamp: 1649765555
    data:
      _is_fake: true
  29:
    type: preference
    ref: null
    _id: trackerfield_math
    _timestamp: 1649765556
    data:
      _is_fake: true
  30:
    type: preference
    ref: null
    _id: trackerfield_relation
    _timestamp: 1649765556
    data:
      _is_fake: true
  31:
    type: preference
    ref: null
    _id: trackerfield_usergroups
    _timestamp: 1649765556
    data:
      _is_fake: true
  32:
    type: preference
    ref: null
    _id: wikiplugin_colorbox
    _timestamp: 1649765556
    data:
      _is_fake: true
  33:
    type: preference
    ref: null
    _id: wikiplugin_customsearch
    _timestamp: 1649765556
    data:
      _is_fake: true
  34:
    type: preference
    ref: null
    _id: wikiplugin_footnote
    _timestamp: 1649765557
    data:
      _is_fake: true
  35:
    type: preference
    ref: null
    _id: wikiplugin_icon
    _timestamp: 1649765557
    data:
      _is_fake: true
  36:
    type: preference
    ref: null
    _id: wikiplugin_jq
    _timestamp: 1649765557
    data:
      _is_fake: true
  37:
    type: preference
    ref: null
    _id: wikiplugin_js
    _timestamp: 1649765557
    data:
      _is_fake: true
  38:
    type: preference
    ref: null
    _id: wikiplugin_listexecute
    _timestamp: 1649765558
    data:
      _is_fake: true
  39:
    type: preference
    ref: null
    _id: wikiplugin_objectlink
    _timestamp: 1649765558
    data:
      _is_fake: true
  40:
    type: preference
    ref: null
    _id: wikiplugin_pivottable
    _timestamp: 1649765558
    data:
      _is_fake: true
  41:
    type: preference
    ref: null
    _id: wikiplugin_preference
    _timestamp: 1649765558
    data:
      _is_fake: true
  42:
    type: preference
    ref: null
    _id: wikiplugin_preview
    _timestamp: 1649765559
    data:
      _is_fake: true
  43:
    type: preference
    ref: null
    _id: wikiplugin_sign
    _timestamp: 1649765559
    data:
      _is_fake: true
  44:
    type: preference
    ref: null
    _id: wikiplugin_tr
    _timestamp: 1649765559
    data:
      _is_fake: true
  45:
    type: preference
    ref: null
    _id: wikiplugin_trackercalendar
    _timestamp: 1649765559
    data:
      _is_fake: true
  46:
    type: preference
    ref: null
    _id: wikiplugin_trackerquerytemplate
    _timestamp: 1649765560
    data:
      _is_fake: true
  47:
    type: wiki_page
    ref: timesheets_entry_start_and_end_time
    _id: 'Timesheets entry - start and end time'
    _timestamp: 1649767998
    data:
      name: 'Timesheets entry - start and end time'
      content: 'wikicontent:Timesheets entry - start and end time'
      lang: en
      wysiwyg: 'n'
  48:
    type: wiki_page
    ref: timesheets_entry_date_and_duration
    _id: 'Timesheets entry - date and duration'
    _timestamp: 1649768009
    data:
      name: 'Timesheets entry - date and duration'
      content: 'wikicontent:Timesheets entry - date and duration'
      lang: en
      wysiwyg: 'n'
  50:
    type: preference
    ref: null
    _id: feature_wiki
    _timestamp: 1649768336
    data:
      _is_fake: true
  51:
    type: preference
    ref: null
    _id: wikiHomePage
    _timestamp: 1649768358
    data:
      _is_fake: true
  52:
    type: wiki_page
    ref: timesheets_homepage
    _id: 'Timesheets homepage'
    _timestamp: 1649769181
    data:
      name: 'Timesheets homepage'
      content: 'wikicontent:Timesheets homepage'
      lang: en
      wysiwyg: 'n'
  53:
    type: wiki_page
    ref: timesheets_list
    _id: 'Timesheets list'
    _timestamp: 1649769186
    data:
      name: 'Timesheets list'
      content: 'wikicontent:Timesheets list'
      lang: en
      wysiwyg: 'n'
unknown_objects: {  }
{CODE}

!! Related pages
List of wiki pages in profiles.t.o related to this profile:
{titlesearch search="Timesheets" exclude="{{page}}" noheader="1"}
        

History

Information Version
Tue 30 of Aug, 2022 08:26 GMT-0000 Victor Emanouilov scoro field 11
Tue 30 of Aug, 2022 07:40 GMT-0000 Victor Emanouilov timesheet ical tabular 10
Sat 27 of Aug, 2022 12:49 GMT-0000 Victor Emanouilov update integration with time-ld and prejournal 9
Fri 12 of Aug, 2022 11:38 GMT-0000 Victor Emanouilov syntax fix 8
Fri 12 of Aug, 2022 11:38 GMT-0000 Victor Emanouilov federated timesheets related changes - support for pondersource prejournal and timeld APIs 7
Wed 27 of Apr, 2022 23:05 GMT-0000 Victor Emanouilov keep original URI when importing 6
Wed 27 of Apr, 2022 13:52 GMT-0000 Victor Emanouilov add unique URI as primary key 5
Tue 12 of Apr, 2022 13:43 GMT-0000 Victor Emanouilov remove fake profile references 4
Tue 12 of Apr, 2022 13:31 GMT-0000 Victor Emanouilov change entry page names 3
Tue 12 of Apr, 2022 13:24 GMT-0000 Victor Emanouilov categorize 2
Tue 12 of Apr, 2022 13:23 GMT-0000 Victor Emanouilov insert page info and profile code 1