Changeset 588

Show
Ignore:
Timestamp:
03/22/07 05:58:12 (2 years ago)
Author:
jarmo
Message:
  • Removed references to form categories, data type tags and asset condition analysis from the manual.
  • TaskController? tests are now fixture free but not complete. Seems like the best option is to rewrite
    all tests at once because the old ones are bad and messy. Fixtures shouldn't be used for anything.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/baseline/app/controllers/task_controller.rb

    r587 r588  
    319319  end 
    320320 
    321   def update_states 
    322     raise params.inspect 
    323   end 
    324  
    325321  def remove 
    326322    common_remove(Task, 'short_description', :action => 'list' ) { |instance| 
  • branches/baseline/db/migrate/002_initial_data.rb

    r586 r588  
    77class InitialData < ActiveRecord::Migration 
    88  def self.up 
    9     connection = ActiveRecord::Base.connection 
    10  
    11     #transaction do 
    12       # Users (login/password): admin/admin and user/user 
    13       admin = TempUser.create!(:login => 'admin', :password => 'admin', 
    14                                :first_name => 'John', :last_name => 'Smith', :lang => 'en') 
    15       user = TempUser.create!(:login => 'user', :password => 'user', 
    16                               :first_name => 'Jane', :last_name => 'Doe', :lang => 'en') 
    17  
    18       # User groups 
    19       admins = TempUserGroup.create!(:name => 'Administrators', :info => 'Administrative users') 
    20       users = TempUserGroup.create!(:name => 'Users', :info => 'Normal users') 
    21  
    22       # Users to user groups: admin -> Administrators, user -> Users 
    23       admins.add_user(admin) 
    24       users.add_user(user) 
    25  
    26       # Assets 
    27       TempAsset.delete_all 
    28       connection.reset_pk_sequence!('assets') if ['PostgreSQL'].include?(connection.adapter_name) 
    29       # The root asset (id=1) 
    30       root = TempAsset.create!(:code => 'CMMS', :name => 'NorfelloCMMS', :parent_id => nil) 
    31  
    32       # User permissions to assets 
    33       root_for_admins = root.add_user_group(admins, :edit => true, 
    34                                             :create_form => true, :create_task => true, 
    35                                             :attach_file => true, :create_subasset => true, 
    36                                             :edit_permissions => true, :remove => true) 
    37       root_for_users = root.add_user_group(users, :edit => false, 
    38                                            :create_form => true, :create_task => true, 
    39                                            :attach_file => true, :create_subasset => true, 
    40                                            :edit_permissions => true, :remove => true) 
    41  
    42       # Default permissions for data created to the root asset by user groups 
    43       root_for_admins.create_permission_profile(admins, 'Form', true, true) 
    44       root_for_admins.create_permission_profile(admins, 'Task', true, true, true) 
    45       root_for_admins.create_permission_profile(admins, 'Attachment', true, true) 
    46       root_for_admins.create_permission_profile(users, 'Form', true, false) 
    47       root_for_admins.create_permission_profile(users, 'Task', true, true, false) 
    48       root_for_admins.create_permission_profile(users, 'Attachment', true, false) 
    49       root_for_users.create_permission_profile(admins, 'Form', true, true) 
    50       root_for_users.create_permission_profile(admins, 'Task', true, true, true) 
    51       root_for_users.create_permission_profile(admins, 'Attachment', true, true) 
    52       root_for_users.create_permission_profile(users, 'Form', true, false) 
    53       root_for_users.create_permission_profile(users, 'Task', true, true, false) 
    54       root_for_users.create_permission_profile(users, 'Attachment', true, false) 
    55  
    56       # Keyrings 
    57       admin_keyring = TempKeyring.create!(:name => 'Administrators', :info => 'All keys') 
    58       user_keyring = TempKeyring.create!(:name => 'Users', :info => 'Keys for daily use') 
    59  
    60       # Users to keyrings: admin -> Administrators, user -> Users 
    61       admin_keyring.add_user(admin) 
    62       user_keyring.add_user(user) 
    63  
    64       # Action keys 
    65       all_action_keys = 
    66       [ 
    67        ['asset/add_user_group', [admin_keyring, user_keyring] ], 
    68        ['asset/copy_permissions_to_subassets', [admin_keyring, user_keyring] ], 
    69        ['asset/create_permission_profile', [admin_keyring, user_keyring] ], 
    70        ['asset/create_subasset', [admin_keyring, user_keyring] ], 
    71        ['asset/edit', [admin_keyring, user_keyring] ], 
    72        ['asset/edit_permissions', [admin_keyring, user_keyring] ], 
    73        ['asset/edit_protector', [admin_keyring, user_keyring] ], 
    74        ['asset/edit_user_permissions', [admin_keyring, user_keyring] ], 
    75        ['asset/remove', [admin_keyring, user_keyring] ], 
    76        ['asset/remove_user_groups', [admin_keyring, user_keyring] ], 
    77        ['asset/set_use_parents_permissions', [admin_keyring, user_keyring] ], 
    78        ['asset/update_permission_profiles', [admin_keyring, user_keyring] ], 
    79        ['asset/user_permissions', [admin_keyring, user_keyring] ], 
    80        ['asset/view', [admin_keyring, user_keyring] ], 
    81        ['asset_permission/add_user_group', [admin_keyring, user_keyring] ], 
    82        ['asset_permission/copy_to_subassets', [admin_keyring, user_keyring] ], 
    83        ['asset_permission/create_permission_profile', [admin_keyring, user_keyring] ], 
    84        ['asset_permission/edit', [admin_keyring, user_keyring] ], 
    85        ['asset_permission/list', [admin_keyring, user_keyring] ], 
    86        ['asset_permission/remove_user_groups', [admin_keyring, user_keyring] ], 
    87        ['asset_permission/set_use_parents_permissions', [admin_keyring, user_keyring] ], 
    88        ['asset_permission/update_permission_profiles', [admin_keyring, user_keyring] ], 
    89        ['asset_permission/update_permissions', [admin_keyring, user_keyring] ], 
    90        ['asset_tree/collapse_tree', [admin_keyring, user_keyring] ], 
    91        ['asset_tree/expand_tree', [admin_keyring, user_keyring] ], 
    92        ['asset_tree/select', [admin_keyring, user_keyring] ], 
    93        ['asset_tree/toggle_assets', [admin_keyring, user_keyring] ], 
    94        ['asset_tree/toggle_selection_mode', [admin_keyring, user_keyring] ], 
    95        ['asset_tree/toggle_tree_node_open', [admin_keyring, user_keyring] ], 
    96        ['asset_tree/toggle_view_mode', [admin_keyring, user_keyring] ], 
    97        ['asset_tree/update_branch_selection_options', [admin_keyring, user_keyring] ], 
    98        ['asset_type/create', [admin_keyring] ], 
    99        ['asset_type/edit', [admin_keyring] ], 
    100        ['asset_type/list', [admin_keyring] ], 
    101        ['asset_type/remove', [admin_keyring] ], 
    102        ['asset_type/view', [admin_keyring, user_keyring] ], 
    103        ['asset_type_icon/create', [admin_keyring] ], 
    104        ['asset_type_icon/list', [admin_keyring] ], 
    105        ['asset_type_icon/remove', [admin_keyring] ], 
    106        ['asset_type_icon/view', [admin_keyring, user_keyring] ], 
    107        ['attachment/attach', [admin_keyring, user_keyring] ], 
    108        ['attachment/attach_to_type', [admin_keyring, user_keyring] ], 
    109        ['attachment/download', [admin_keyring, user_keyring] ], 
    110        ['attachment/list', [admin_keyring, user_keyring] ], 
    111        ['attachment/remove', [admin_keyring, user_keyring] ], 
    112        ['attachment/view', [admin_keyring, user_keyring] ], 
    113        ['data_permission/create_permission', [admin_keyring, user_keyring] ], 
    114        ['data_permission/edit', [admin_keyring, user_keyring] ], 
    115        ['data_permission/preview', [admin_keyring, user_keyring] ], 
    116        ['data_permission/update_permissions', [admin_keyring, user_keyring] ], 
    117        ['message/change_state_to_old', [admin_keyring, user_keyring] ], 
    118        ['message/list', [admin_keyring, user_keyring] ], 
    119        ['message/remove', [admin_keyring, user_keyring] ], 
    120        ['message/view', [admin_keyring, user_keyring] ], 
    121        ['online_help/view', [admin_keyring, user_keyring] ], 
    122        ['action_key/create', [admin_keyring] ], 
    123        ['action_key/edit', [admin_keyring] ], 
    124        ['action_key/list', [admin_keyring] ], 
    125        ['action_key/remove', [admin_keyring] ], 
    126        ['form/auto_complete_for_form_keywords', [admin_keyring, user_keyring] ], 
    127        ['form/create', [admin_keyring, user_keyring] ], 
    128        ['form/download', [admin_keyring, user_keyring] ], 
    129        ['form/edit', [admin_keyring, user_keyring] ], 
    130        ['form/edit_protector', [admin_keyring, user_keyring] ], 
    131        ['form/fill_image_field', [admin_keyring, user_keyring] ], 
    132        ['form/get_image', [admin_keyring, user_keyring] ], 
    133        ['form/list', [admin_keyring, user_keyring] ], 
    134        ['form/receive_image_coordinates', [admin_keyring, user_keyring] ], 
    135        ['form/remove', [admin_keyring, user_keyring] ], 
    136        ['form/search', [admin_keyring, user_keyring] ], 
    137        ['form/select_form_type', [admin_keyring, user_keyring] ], 
    138        ['form/view', [admin_keyring, user_keyring] ], 
    139        ['form_category/create', [admin_keyring] ], 
    140        ['form_category/edit', [admin_keyring] ], 
    141        ['form_category/list', [admin_keyring] ], 
    142        ['form_category/remove', [admin_keyring] ], 
    143        ['form_category/view_as_tree', [admin_keyring] ], 
    144        ['form_type/add_form_field_group', [admin_keyring] ], 
    145        ['form_type/create_step1', [admin_keyring] ], 
    146        ['form_type/create_step2', [admin_keyring] ], 
    147        ['form_type/create_step3', [admin_keyring] ], 
    148        ['form_type/create_step4', [admin_keyring] ], 
    149        ['form_type/create_step5', [admin_keyring] ], 
    150        ['form_type/download_template', [admin_keyring] ], 
    151        ['form_type/edit', [admin_keyring] ], 
    152        ['form_type/list', [admin_keyring] ], 
    153        ['form_type/preview', [admin_keyring] ], 
    154        ['form_type/remove', [admin_keyring] ], 
    155        ['form_type/update_form_field_groups', [admin_keyring] ], 
    156        ['form_type/update_form_fields', [admin_keyring] ], 
    157        ['form_type/wizard_protector', [admin_keyring] ], 
    158        ['keyring/add_owner', [admin_keyring] ], 
    159        ['keyring/create', [admin_keyring] ], 
    160        ['keyring/edit', [admin_keyring] ], 
    161        ['keyring/edit_keys', [admin_keyring] ], 
    162        ['keyring/edit_owners', [admin_keyring] ], 
    163        ['keyring/add_key', [admin_keyring] ], 
    164        ['keyring/list', [admin_keyring] ], 
    165        ['keyring/remove', [admin_keyring] ], 
    166        ['keyring/remove_owners', [admin_keyring] ], 
    167        ['keyring/remove_keys', [admin_keyring] ], 
    168        ['timeline/index', [admin_keyring, user_keyring] ], 
    169        ['user/auto_complete_for_user_login', [admin_keyring, user_keyring] ], 
    170        ['user/change_password', [admin_keyring, user_keyring] ], 
    171        ['user/create', [admin_keyring] ], 
    172        ['user/edit', [admin_keyring] ], 
    173        ['user/edit_my_information', [admin_keyring, user_keyring] ], 
    174        ['user/list', [admin_keyring] ], 
    175        ['user/remove', [admin_keyring] ], 
    176        ['user/remove_from_keyrings', [admin_keyring] ], 
    177        ['user/reset_password', [admin_keyring] ], 
    178        ['user/search', [admin_keyring, user_keyring] ], 
    179        ['user/view', [admin_keyring, user_keyring] ], 
    180        ['user_group/add_user', [admin_keyring] ], 
    181        ['user_group/create', [admin_keyring] ], 
    182        ['user_group/edit', [admin_keyring] ], 
    183        ['user_group/list', [admin_keyring] ], 
    184        ['user_group/remove', [admin_keyring] ], 
    185        ['user_group/remove_users', [admin_keyring] ], 
    186        ['user_group/users', [admin_keyring] ], 
    187        ['type_attachment/attach', [admin_keyring, user_keyring] ], 
    188        ['type_attachment/download', [admin_keyring, user_keyring] ], 
    189        ['type_attachment/list', [admin_keyring, user_keyring] ], 
    190        ['type_attachment/remove', [admin_keyring, user_keyring] ], 
    191        ['type_attachment/view', [admin_keyring, user_keyring] ], 
    192        ['task/create', [admin_keyring, user_keyring] ], 
    193        ['task/download', [admin_keyring, user_keyring] ], 
    194        ['task/edit', [admin_keyring, user_keyring] ], 
    195        ['task/edit_protector', [admin_keyring, user_keyring] ], 
    196        ['task/list', [admin_keyring, user_keyring] ], 
    197        ['task/remove', [admin_keyring, user_keyring] ], 
    198        ['task/view', [admin_keyring, user_keyring] ], 
    199        ['task_type/create', [admin_keyring] ], 
    200        ['task_type/download_template', [admin_keyring] ], 
    201        ['task_type/edit', [admin_keyring] ], 
    202        ['task_type/list', [admin_keyring] ], 
    203        ['task_type/remove', [admin_keyring] ], 
    204        ['task_type/view_template', [admin_keyring] ], 
    205        ['asset_field/list', [admin_keyring]], 
    206        ['asset_field/create', [admin_keyring]], 
    207        ['asset_field/edit', [admin_keyring]], 
    208        ['asset_field/remove', [admin_keyring]], 
    209        ['asset_field/set_default_value', [admin_keyring]], 
    210        ['asset_field/unset_default_value', [admin_keyring]], 
    211        ['asset/change_type', [admin_keyring, user_keyring]], 
    212        ['asset/change_type_protector', [admin_keyring, user_keyring]], 
    213        ['asset/select_type', [admin_keyring, user_keyring]], 
    214        ['asset_tree/clone_asset', [admin_keyring, user_keyring]], 
    215        ['asset_tree/move', [admin_keyring, user_keyring]], 
    216        ['asset_tree/search', [admin_keyring, user_keyring]], 
    217        ['form_type/add_enumerated_value', [admin_keyring]], 
    218        ['form_type/remove_enumerated_value', [admin_keyring]], 
    219        ['form_type/change_template', [admin_keyring]], 
    220        ['form/get_form_image', [admin_keyring, user_keyring]], 
    221        ['system/version', [admin_keyring, user_keyring]], 
    222        ['task_type/change_template', [admin_keyring]], 
    223        ['task_type/get_image_from_template', [admin_keyring]], 
    224        ['message/send_message', [admin_keyring, user_keyring]], 
    225        ['task/move', [admin_keyring, user_keyring]], 
    226        ['user/remove_from_user_groups', [admin_keyring]] 
    227       ].map { |k| 
    228         key = TempActionKey.create!(:name => k.first) 
    229         k.last.each { |keyring| keyring.grant(key) } 
    230         key 
    231       } 
    232  
    233       # Asset type icons 
    234       icons_filenames = (1..9).collect { |num| "default_icon_#{num}.gif" } 
    235       for filename in icons_filenames 
    236         icon = TempAssetTypeIcon.new 
    237         icon.data = File.open(File.join('default_icons', filename)).read 
    238         icon.content_type = 'image/gif' 
    239         icon.save! 
    240       end 
    241     #end 
     9    # Users (login/password): admin/admin and user/user 
     10    admin = TempUser.create!(:login => 'admin', :password => 'admin', 
     11                             :first_name => 'John', :last_name => 'Smith', :lang => 'en') 
     12    user = TempUser.create!(:login => 'user', :password => 'user', 
     13                            :first_name => 'Jane', :last_name => 'Doe', :lang => 'en') 
     14 
     15    # User groups 
     16    admins = TempUserGroup.create!(:name => 'Administrators', :info => 'Administrative users') 
     17    users = TempUserGroup.create!(:name => 'Users', :info => 'Normal users') 
     18 
     19    # Users to user groups: admin -> Administrators, user -> Users 
     20    admins.add_user(admin) 
     21    users.add_user(user) 
     22 
     23    # Assets 
     24    TempAsset.delete_all 
     25    connection.reset_pk_sequence!('assets') if ['PostgreSQL'].include?(connection.adapter_name) 
     26    # The root asset (id=1) 
     27    root = TempAsset.create!(:code => 'CMMS', :name => 'NorfelloCMMS', :parent_id => nil) 
     28 
     29    # User permissions to assets 
     30    root_for_admins = root.add_user_group(admins, :edit => true, 
     31                                          :create_form => true, :create_task => true, 
     32                                          :attach_file => true, :create_subasset => true, 
     33                                          :edit_permissions => true, :remove => true) 
     34    root_for_users = root.add_user_group(users, :edit => false, 
     35                                         :create_form => true, :create_task => true, 
     36                                         :attach_file => true, :create_subasset => true, 
     37                                         :edit_permissions => true, :remove => true) 
     38 
     39    # Default permissions for data created to the root asset by user groups 
     40    root_for_admins.create_permission_profile(admins, 'Form', true, true) 
     41    root_for_admins.create_permission_profile(admins, 'Task', true, true, true) 
     42    root_for_admins.create_permission_profile(admins, 'Attachment', true, true) 
     43    root_for_admins.create_permission_profile(users, 'Form', true, false) 
     44    root_for_admins.create_permission_profile(users, 'Task', true, true, false) 
     45    root_for_admins.create_permission_profile(users, 'Attachment', true, false) 
     46    root_for_users.create_permission_profile(admins, 'Form', true, true) 
     47    root_for_users.create_permission_profile(admins, 'Task', true, true, true) 
     48    root_for_users.create_permission_profile(admins, 'Attachment', true, true) 
     49    root_for_users.create_permission_profile(users, 'Form', true, false) 
     50    root_for_users.create_permission_profile(users, 'Task', true, true, false) 
     51    root_for_users.create_permission_profile(users, 'Attachment', true, false) 
     52 
     53    # Keyrings 
     54    admin_keyring = TempKeyring.create!(:name => 'Administrators', :info => 'All keys') 
     55    user_keyring = TempKeyring.create!(:name => 'Users', :info => 'Keys for daily use') 
     56 
     57    # Users to keyrings: admin -> Administrators, user -> Users 
     58    admin_keyring.add_user(admin) 
     59    user_keyring.add_user(user) 
     60 
     61    # Action keys 
     62    all_action_keys = 
     63    [ 
     64      ['action_key/create', [admin_keyring] ], 
     65      ['action_key/edit', [admin_keyring] ], 
     66      ['action_key/list', [admin_keyring] ], 
     67      ['action_key/remove', [admin_keyring] ], 
     68      ['asset/add_user_group', [admin_keyring, user_keyring] ], 
     69      ['asset/change_type', [admin_keyring, user_keyring]], 
     70      ['asset/change_type_protector', [admin_keyring, user_keyring]], 
     71      ['asset/copy_permissions_to_subassets', [admin_keyring, user_keyring] ], 
     72      ['asset/create_permission_profile', [admin_keyring, user_keyring] ], 
     73      ['asset/create_subasset', [admin_keyring, user_keyring] ], 
     74      ['asset/edit', [admin_keyring, user_keyring] ], 
     75      ['asset/edit_permissions', [admin_keyring, user_keyring] ], 
     76      ['asset/edit_protector', [admin_keyring, user_keyring] ], 
     77      ['asset/edit_user_permissions', [admin_keyring, user_keyring] ], 
     78      ['asset/remove', [admin_keyring, user_keyring] ], 
     79      ['asset/remove_user_groups', [admin_keyring, user_keyring] ], 
     80      ['asset/select_type', [admin_keyring, user_keyring]], 
     81      ['asset/set_use_parents_permissions', [admin_keyring, user_keyring] ], 
     82      ['asset/update_permission_profiles', [admin_keyring, user_keyring] ], 
     83      ['asset/user_permissions', [admin_keyring, user_keyring] ], 
     84      ['asset/view', [admin_keyring, user_keyring] ], 
     85      ['asset_field/create', [admin_keyring]], 
     86      ['asset_field/edit', [admin_keyring]], 
     87      ['asset_field/list', [admin_keyring]], 
     88      ['asset_field/remove', [admin_keyring]], 
     89      ['asset_field/set_default_value', [admin_keyring]], 
     90      ['asset_field/unset_default_value', [admin_keyring]], 
     91      ['asset_permission/add_user_group', [admin_keyring, user_keyring] ], 
     92      ['asset_permission/copy_to_subassets', [admin_keyring, user_keyring] ], 
     93      ['asset_permission/create_permission_profile', [admin_keyring, user_keyring] ], 
     94      ['asset_permission/edit', [admin_keyring, user_keyring] ], 
     95      ['asset_permission/list', [admin_keyring, user_keyring] ], 
     96      ['asset_permission/remove_user_groups', [admin_keyring, user_keyring] ], 
     97      ['asset_permission/set_use_parents_permissions', [admin_keyring, user_keyring] ], 
     98      ['asset_permission/update_permission_profiles', [admin_keyring, user_keyring] ], 
     99      ['asset_permission/update_permissions', [admin_keyring, user_keyring] ], 
     100      ['asset_tree/clone_asset', [admin_keyring, user_keyring]], 
     101      ['asset_tree/collapse_tree', [admin_keyring, user_keyring] ], 
     102      ['asset_tree/expand_tree', [admin_keyring, user_keyring] ], 
     103      ['asset_tree/move', [admin_keyring, user_keyring]], 
     104      ['asset_tree/search', [admin_keyring, user_keyring]], 
     105      ['asset_tree/select', [admin_keyring, user_keyring] ], 
     106      ['asset_tree/toggle_assets', [admin_keyring, user_keyring] ], 
     107      ['asset_tree/toggle_selection_mode', [admin_keyring, user_keyring] ], 
     108      ['asset_tree/toggle_tree_node_open', [admin_keyring, user_keyring] ], 
     109      ['asset_tree/toggle_view_mode', [admin_keyring, user_keyring] ], 
     110      ['asset_tree/update_branch_selection_options', [admin_keyring, user_keyring] ], 
     111      ['asset_type/create', [admin_keyring] ], 
     112      ['asset_type/edit', [admin_keyring] ], 
     113      ['asset_type/list', [admin_keyring] ], 
     114      ['asset_type/remove', [admin_keyring] ], 
     115      ['asset_type/view', [admin_keyring, user_keyring] ], 
     116      ['asset_type_icon/create', [admin_keyring] ], 
     117      ['asset_type_icon/list', [admin_keyring] ], 
     118      ['asset_type_icon/remove', [admin_keyring] ], 
     119      ['asset_type_icon/view', [admin_keyring, user_keyring] ], 
     120      ['attachment/attach', [admin_keyring, user_keyring] ], 
     121      ['attachment/attach_to_type', [admin_keyring, user_keyring] ], 
     122      ['attachment/download', [admin_keyring, user_keyring] ], 
     123      ['attachment/list', [admin_keyring, user_keyring] ], 
     124      ['attachment/remove', [admin_keyring, user_keyring] ], 
     125      ['attachment/view', [admin_keyring, user_keyring] ], 
     126      ['data_permission/create_permission', [admin_keyring, user_keyring] ], 
     127      ['data_permission/edit', [admin_keyring, user_keyring] ], 
     128      ['data_permission/preview', [admin_keyring, user_keyring] ], 
     129      ['data_permission/update_permissions', [admin_keyring, user_keyring] ], 
     130      ['form/auto_complete_for_form_keywords', [admin_keyring, user_keyring] ], 
     131      ['form/create', [admin_keyring, user_keyring] ], 
     132      ['form/download', [admin_keyring, user_keyring] ], 
     133      ['form/edit', [admin_keyring, user_keyring] ], 
     134      ['form/edit_protector', [admin_keyring, user_keyring] ], 
     135      ['form/fill_image_field', [admin_keyring, user_keyring] ], 
     136      ['form/get_form_image', [admin_keyring, user_keyring]], 
     137      ['form/get_image', [admin_keyring, user_keyring] ], 
     138      ['form/list', [admin_keyring, user_keyring] ], 
     139      ['form/receive_image_coordinates', [admin_keyring, user_keyring] ], 
     140      ['form/remove', [admin_keyring, user_keyring] ], 
     141      ['form/search', [admin_keyring, user_keyring] ], 
     142      ['form/select_form_type', [admin_keyring, user_keyring] ], 
     143      ['form/view', [admin_keyring, user_keyring] ], 
     144      ['form_category/create', [admin_keyring] ], 
     145      ['form_category/edit', [admin_keyring] ], 
     146      ['form_category/list', [admin_keyring] ], 
     147      ['form_category/remove', [admin_keyring] ], 
     148      ['form_category/view_as_tree', [admin_keyring] ], 
     149      ['form_type/add_enumerated_value', [admin_keyring]], 
     150      ['form_type/add_form_field_group', [admin_keyring] ], 
     151      ['form_type/change_template', [admin_keyring]], 
     152      ['form_type/create_step1', [admin_keyring] ], 
     153      ['form_type/create_step2', [admin_keyring] ], 
     154      ['form_type/create_step3', [admin_keyring] ], 
     155      ['form_type/create_step4', [admin_keyring] ], 
     156      ['form_type/create_step5', [admin_keyring] ], 
     157      ['form_type/download_template', [admin_keyring] ], 
     158      ['form_type/edit', [admin_keyring] ], 
     159      ['form_type/list', [admin_keyring] ], 
     160      ['form_type/preview', [admin_keyring] ], 
     161      ['form_type/remove', [admin_keyring] ], 
     162      ['form_type/remove_enumerated_value', [admin_keyring]], 
     163      ['form_type/update_form_field_groups', [admin_keyring] ], 
     164      ['form_type/update_form_fields', [admin_keyring] ], 
     165      ['form_type/wizard_protector', [admin_keyring] ], 
     166      ['keyring/add_key', [admin_keyring] ], 
     167      ['keyring/add_owner', [admin_keyring] ], 
     168      ['keyring/create', [admin_keyring] ], 
     169      ['keyring/edit', [admin_keyring] ], 
     170      ['keyring/edit_keys', [admin_keyring] ], 
     171      ['keyring/edit_owners', [admin_keyring] ], 
     172      ['keyring/list', [admin_keyring] ], 
     173      ['keyring/remove', [admin_keyring] ], 
     174      ['keyring/remove_keys', [admin_keyring] ], 
     175      ['keyring/remove_owners', [admin_keyring] ], 
     176      ['message/change_state_to_old', [admin_keyring, user_keyring] ], 
     177      ['message/list', [admin_keyring, user_keyring] ], 
     178      ['message/remove', [admin_keyring, user_keyring] ], 
     179      ['message/send_message', [admin_keyring, user_keyring]], 
     180      ['message/view', [admin_keyring, user_keyring] ], 
     181      ['online_help/view', [admin_keyring, user_keyring] ], 
     182      ['system/version', [admin_keyring, user_keyring]], 
     183      ['task/create', [admin_keyring, user_keyring] ], 
     184      ['task/download', [admin_keyring, user_keyring] ], 
     185      ['task/edit', [admin_keyring, user_keyring] ], 
     186      ['task/edit_protector', [admin_keyring, user_keyring] ], 
     187      ['task/list', [admin_keyring, user_keyring] ], 
     188      ['task/move', [admin_keyring, user_keyring]], 
     189      ['task/remove', [admin_keyring, user_keyring] ], 
     190      ['task/view', [admin_keyring, user_keyring] ], 
     191      ['task_type/change_template', [admin_keyring]], 
     192      ['task_type/create', [admin_keyring] ], 
     193      ['task_type/download_template', [admin_keyring] ], 
     194      ['task_type/edit', [admin_keyring] ], 
     195      ['task_type/get_image_from_template', [admin_keyring]], 
     196      ['task_type/list', [admin_keyring] ], 
     197      ['task_type/remove', [admin_keyring] ], 
     198      ['task_type/view_template', [admin_keyring] ], 
     199      ['timeline/index', [admin_keyring, user_keyring] ], 
     200      ['type_attachment/attach', [admin_keyring, user_keyring] ], 
     201      ['type_attachment/download', [admin_keyring, user_keyring] ], 
     202      ['type_attachment/list', [admin_keyring, user_keyring] ], 
     203      ['type_attachment/remove', [admin_keyring, user_keyring] ], 
     204      ['type_attachment/view', [admin_keyring, user_keyring] ], 
     205      ['user/auto_complete_for_user_login', [admin_keyring, user_keyring] ], 
     206      ['user/change_password', [admin_keyring, user_keyring] ], 
     207      ['user/create', [admin_keyring] ], 
     208      ['user/edit', [admin_keyring] ], 
     209      ['user/edit_my_information', [admin_keyring, user_keyring] ], 
     210      ['user/list', [admin_keyring] ], 
     211      ['user/remove', [admin_keyring] ], 
     212      ['user/remove_from_keyrings', [admin_keyring] ], 
     213      ['user/remove_from_user_groups', [admin_keyring] ], 
     214      ['user/reset_password', [admin_keyring] ], 
     215      ['user/search', [admin_keyring, user_keyring] ], 
     216      ['user/view', [admin_keyring, user_keyring] ], 
     217      ['user_group/add_user', [admin_keyring] ], 
     218      ['user_group/create', [admin_keyring] ], 
     219      ['user_group/edit', [admin_keyring] ], 
     220      ['user_group/list', [admin_keyring] ], 
     221      ['user_group/remove', [admin_keyring] ], 
     222      ['user_group/remove_users', [admin_keyring] ], 
     223      ['user_group/users', [admin_keyring] ] 
     224    ].map { |k| 
     225      key = TempActionKey.create!(:name => k.first) 
     226      k.last.each { |keyring| keyring.grant(key) } 
     227      key 
     228    } 
     229 
     230    # Asset type icons 
     231    icons_filenames = (1..9).collect { |num| "default_icon_#{num}.gif" } 
     232    for filename in icons_filenames 
     233      icon = TempAssetTypeIcon.new 
     234      icon.data = File.open(File.join('default_icons', filename)).read 
     235      icon.content_type = 'image/gif' 
     236      icon.save! 
     237    end 
    242238  end 
    243239 
  • branches/baseline/doc/manual/latex/tex/reference_manual.tex

    r576 r588  
    298298The Search function can be used to find forms matching the given criteria: chosen form types, time span and keywords. 
    299299 
    300 The Search function shows you a form, where first are listed all form types grouped according to the form categories they belong  to, next the time span where forms are searched and last a field for search keywords. 
     300The Search function shows you a form, where first are listed all form types next the time span where forms are searched and last a field for search keywords. 
    301301%\paragraph{Help} 
    302302%See Online help~\ref{subsec:online_help}. 
     
    413413\item \textbf{Name}: Name of the asset type. The name of an asset type is shown for example in the asset information view for an asset of that type. 
    414414\item \textbf{Icon}: Icon is used to mark the asset type and all assets belonging to the asset type. 
    415 % This feature is available since 1.2 
    416 \item \textbf{Typical maintenance time interval}: Typical time interval between successive maintenance operations for assets of this type --- Optional field. Used when assets condition is monitored and analysed. 
    417 % 
    418415\item \textbf{Description}: Description  and other information for the asset type. Description fields use a simple markup language that enables you to include headers, lists and other elements in the description --- See \ref{subsec:markup_language} for details. 
    419416\end{itemize} 
     
    461458\begin{itemize} 
    462459\item \textbf{Name}: Name of the task type 
    463 \item \textbf{Tag}: Data type tag for the task type --- See \ref{subsec:data_type_tags} for data type tags 
    464460\item \textbf{Description}: Description of the task  type 
    465461\end{itemize} 
     
    519515\item \texttt{cmms\_form\_creation\_date}: Creation time of the form 
    520516\item \texttt{cmms\_form\_type\_name}: Name for the type of the form 
    521 \item \texttt{cmms\_form\_category\_name}: Name for the category of the form 
    522517\item All common automatic fields listed in \ref{:subsubsec:user_fields} 
    523518\end{itemize} 
     
    527522You can create a new form type by following the instructions in this sub-section. 
    528523\paragraph{Step 1 of 4} 
    529 Select form category and enter name for the new form type. 
     524Select name for the new form type. 
    530525\paragraph{Step 2 of 4} 
    531526Select Open Document template file for the form type. 
     
    537532% FIXME 
    538533To be continued\ldots 
    539  
    540 \subsection{Form categories} 
    541 \label{subsec:form_categories} 
    542 Form categories are used to organize form types. Each form type has to belong to a form category. By associating similar form types to a same form category you can keep your form types in good order. 
    543  
    544 You could for example have a form category 'Maintenance X' and form types 'Annual maintenance' and 'Preventive maintenance' could belong to this category. 
    545  
    546 Each form category has three fields: 
    547 \begin{itemize} 
    548 \item \textbf{Name}: Name for the form category 
    549 \item \textbf{Tag}: Data type tag for the form category --- See \ref{subsec:data_type_tags} for data type tags 
    550 % This might be removed in future versions! 
    551 \item \textbf{Parent}: Parent category for the form category 
    552 \end{itemize} 
    553  
    554 \subsubsection{Functions in the Form categories menu} 
    555 You can manage your form categories with these functions. 
    556 \paragraph{List} 
    557 Shows a list of form categories. Existing form categories can be edited with the 'Edit' action in the 'Actions' column and removed by performing the 'Remove' action on selected form categories. 
    558 \paragraph{Create} 
    559 You can create a new form category by using the Create function. Form category is created by filling out the fields in the creation form and by selecting the 'Create' button. 
    560534 
    561535\subsection{Access control} 
     
    806780In addition to these automatic user fields, both task and form type have their own automatic user fields. See \ref{subsec:task_types} and \ref{subsec:form_types} for the additional automatic fields. 
    807781 
    808 \subsection{Data type tags --- Tagging tasks and forms} 
    809 \label{subsec:data_type_tags} 
    810 Data type tags are used to tag tasks and forms in different task types and form categories. You can tag tasks and forms by setting the 'Tag' field in task types and form categories. All tasks in a tagged task type and all forms in form types in a tagged form category inherit the tag from their data type. 
    811  
    812 \subsubsection{Tag chains} 
    813 The tags constitute tag chains, which are used to model maintenance processes. Information gathered this way is used to monitor and analyse condition of assets. Currently NorfelloCMMS OS has two tag chains 'Service request' and 'Maintenance', which are documented below. 
    814  
    815 \paragraph{Service request} 
    816 Service request tag chain models the process: 
    817 \begin{center} 
    818 \framebox[1.07\width]{Service request form $\longrightarrow$ Service task $\longrightarrow$  Condition form} 
    819 \end{center} 
    820 When a form is created to a form category tagged as 'Service request form', it is expected to lead to a task whose type is tagged as 'Service task'. When the service task is completed, user is expected to file a form to a category tagged as 'Condition form'. 
    821  
    822 An example of this kind of process is 'Failure report $\rightarrow$ Repair task $\rightarrow$ Condition report', where for example a client files a 'Failure report' form on an asset, which leads to creation of a 'Repair' task for the asset and after the task has been performed by a user, she files a 'Condition report' form. 
    823  
    824 \paragraph{Maintenance} 
    825 Maintenance tag chain models the process: 
    826 \begin{center} 
    827 \framebox[1.1\width]{Maintenance task $\longrightarrow$  Maintenance form} 
    828 \end{center} 
    829 When a task is created  to a task type tagged as 'Maintenance task', it is expected that after the task is completed, a form is created to a form category tagged as 'Maintenance form'. 
    830  
    831 This tag chain represents any maintenance task that is required to lead to filing of a form, once the job is done. The resulting form can for example be any kind of maintenance report (e.g. an accounting of work) or a condition report. Use of imagination is recommended. 
    832  
    833 \subsubsection{Using the tags} 
    834 Task types and form categories can be tagged by setting their 'Tag' field. When a task or a form is expected to lead to creation of a form or a task, there is a 'Create form' or a 'Create task' link in the task or form viewing page. The expected data can be created by following these links. 
    835  
    836 \subsubsection{Asset condition monitor} 
    837 Information about assets condition is shown in the 'Condition monitor' found in the asset information viewing page, unless there is nothing to be shown. In the 'Condition monitor' you can see if there is tagged information, that requires users attention, in the selected asset. If the selected asset has a type and the asset type has the typical maintenance time interval defined, the 'Condition monitor' will also show the estimated maintenance need. 
    838  
    839  
    840  
    841  
    842  
    843  
    844  
    845  
    846  
    847  
    848  
    849  
    850  
    851  
    852  
    853  
    854  
    855  
  • branches/baseline/test/functional/task_controller_test.rb

    r585 r588  
    66 
    77class TaskControllerTest < Test::Unit::TestCase 
    8   fixtures :users, :keyrings, :keyrings_users, :action_keys, :action_keys_keyrings, 
    9            :assets, :form_types, :forms, 
    10            :task_types, :tasks, :data_permissions, 
    11            :assets, :user_groups, :user_groups_users, :assets_user_groups, 
    12            :data_permission_profiles, :attachments 
    13  
    148  def setup 
    159    @controller = TaskController.new 
     
    1711    @response   = ActionController::TestResponse.new 
    1812 
    19     @new_task = Task.find @tasks['new_task']['id'] 
    20     @closed_task = Task.find @tasks['closed_unassigned_task']['id'] 
    21     @assigned_task = Task.find @tasks['assigned_task']['id'] 
    22     @accepted_task = Task.find @tasks['accepted_task']['id'] 
    23  
    24     login() 
    25   end 
    26  
    27  
    28   def test_create     
    29     asset = Asset.find @assets['for_tasks']['id'] 
    30     @request.session[:selected_asset_id] = asset.id 
     13    #@new_task = Task.find @tasks['new_task']['id'] 
     14    #@closed_task = Task.find @tasks['closed_unassigned_task']['id'] 
     15    #@assigned_task = Task.find @tasks['assigned_task']['id'] 
     16    #@accepted_task = Task.find @tasks['accepted_task']['id'] 
     17 
     18    @test_type = TaskType.create!(:name => 'Valid name') 
     19 
     20    simple_setup_for_functional_test 
     21     
     22    # Create another user 
     23    @user2 = create_user('test2') 
     24    @user_group.users << @user2 
     25    @keyring.users << @user2 
     26  end 
     27 
     28  def test_list_GET_empty 
     29    @keyring.action_keys << create_action_key('task/list') 
     30    login('test') 
     31 
     32    get 'list' 
     33    assert_response :success 
     34    assert_template 'shared/_list_items' 
     35    assert_equal true, assigns(:items).empty? 
     36  end 
     37   
     38  def test_list_GET_not_empty 
     39    @keyring.action_keys << create_action_key('task/list') 
     40    login('test') 
     41 
     42    for i in 1..100 
     43      create_task(@test_type, @root, true, 'Valid task %i' % i) 
     44    end 
     45 
     46    get 'list' 
     47    assert_response :success 
     48    assert_template 'shared/_list_items' 
     49    assert_equal false, assigns(:items).empty? 
     50  end 
     51 
     52  def test_view_GET_new 
     53    @keyring.action_keys << create_action_key('task/view') 
     54    login('test') 
     55 
     56    task = create_task_in_state(Task.NEW) 
     57 
     58    get 'view', :id => task.id 
     59    assert_response :success 
     60    assert_template 'task/view' 
     61  end 
     62   
     63  def test_view_GET_assigned 
     64    @keyring.action_keys << create_action_key('task/view') 
     65    login('test') 
     66 
     67    task = create_task_in_state(Task.ASSIGNED) 
     68 
     69    get 'view', :id => task.id 
     70    assert_response :success 
     71    assert_template 'task/view' 
     72  end 
     73   
     74  def test_view_GET_accepted 
     75    @keyring.action_keys << create_action_key('task/view') 
     76    login('test') 
     77 
     78    task = create_task_in_state(Task.ACCEPTED) 
     79 
     80    get 'view', :id => task.id 
     81    assert_response :success 
     82    assert_template 'task/view' 
     83  end 
     84   
     85  def test_view_GET_closed 
     86    @keyring.action_keys << create_action_key('task/view') 
     87    login('test') 
     88 
     89    task = create_task_in_state(Task.CLOSED) 
     90 
     91    get 'view', :id => task.id 
     92    assert_response :success 
     93    assert_template 'task/view' 
     94  end 
     95   
     96  def test_view_POST_leave_as_new 
     97    @keyring.action_keys << create_action_key('task/view') 
     98    login('test') 
     99 
     100    task = create_task_in_state(Task.NEW) 
     101 
     102    post 'view', :id => task.id, :task_action => 'leave' 
     103    assert_response :success 
     104    assert_template 'task/view' 
     105 
     106    # Check that the task's state didn't change 
     107    task.reload 
     108    assert_equal Task.NEW, task.state 
     109  end 
     110 
     111  def test_view_POST_assign_new_task 
     112    @keyring.action_keys << create_action_key('task/view') 
     113    login('test') 
     114 
     115    task = create_task_in_state(Task.NEW) 
     116 
     117    post 'view', :id => task.id, :task_action => 'assign', :responsible_user_id => @user2.id 
     118    assert_response :success 
     119    assert_template 'task/view' 
     120 
     121    # Check that the task changed state to ASSIGNED 
     122    # and that the responsible user was set. 
     123    task.reload 
     124    assert_equal Task.ASSIGNED, task.state 
     125    assert_equal @user2.id, task.responsible_user_id 
     126  end 
     127   
     128  def test_view_POST_accept_new_task 
     129    @keyring.action_keys << create_action_key('task/view') 
     130    login('test') 
     131 
     132    task = create_task_in_state(Task.NEW) 
     133 
     134    post 'view', :id => task.id, :task_action => 'accept' 
     135    assert_response :success 
     136    assert_template 'task/view' 
     137 
     138    # Check that the task changed state to ACCEPTED 
     139    # and that the responsible user is the current user. 
     140    task.reload 
     141    assert_equal Task.ACCEPTED, task.state 
     142    assert_equal @user.id, task.responsible_user_id 
     143  end 
     144   
     145  def test_view_POST_close_new_task 
     146    @keyring.action_keys << create_action_key('task/view') 
     147    login('test') 
     148 
     149    task = create_task_in_state(Task.NEW) 
     150 
     151    post 'view', :id => task.id, :task_action => 'close', :task => { :working_time => 1.2 } 
     152    assert_response :success 
     153    assert_template 'task/view' 
     154 
     155    # Check that the task changed state to CLOSED. 
     156    task.reload 
     157    assert_equal Task.CLOSED, task.state 
     158    assert_equal 1.2, task.working_time 
     159  end 
     160   
     161  def test_view_POST_reopen_task 
     162    @keyring.action_keys << create_action_key('task/view') 
     163    login('test') 
     164 
     165    task = create_task_in_state(Task.CLOSED) 
     166 
     167    post 'view', :id => task.id, :task_action => 'reopen' 
     168    assert_response :success 
     169    assert_template 'task/view' 
     170 
     171    # Check that the task changed state to NEW. 
     172    task.reload 
     173    assert_equal Task.NEW, task.state 
     174  end 
     175   
     176  def test_view_POST_close_and_fill 
     177    @keyring.action_keys << create_action_key('task/view') 
     178    login('test') 
     179 
     180    task = create_task_in_state(Task.NEW) 
     181    form_type = FormType.create(:name => 'Valid name', :ready => true, :editable => false) 
     182 
     183    post 'view', :id => task.id, :task_action => 'close_and_fill', :form_type_id => form_type.id 
     184    assert_response :redirect 
     185    assert_redirected_to :controller => 'form', :action => 'create', :id => form_type.id, :task_id => task.id 
     186 
     187    # Check that the task changed state to NEW. 
     188    task.reload 
     189    assert_equal Task.CLOSED, task.state 
     190  end 
     191   
     192  def test_create_GET 
     193    @keyring.action_keys << create_action_key('task/create') 
     194    login('test') 
     195     
     196    # Check that we can create tasks 
     197    assert_equal true, @root.authorized_to_create_task? 
    31198 
    32199    get 'create' 
    33200    assert_response :success 
    34201    assert_template 'task/create' 
    35     assert_not_nil assigns(:title) 
    36     assert assigns(:hide_subaction_links) 
    37     assert !(assigns(:task_types).empty?) 
    38     assert_equal 2, asset.data_permission_profiles_for_current_user('Task').size 
    39      
    40     # Adding task successfully 
    41     task_type_id = @task_types['first']['id'] 
     202 
     203    assert_equal true, assigns(:task).errors.empty? 
     204    assert_equal true, assigns(:task).new_record? 
     205  end 
     206 
     207  def test_create_POST_invalid 
     208    @keyring.action_keys << create_action_key('task/create') 
     209    login('test') 
     210     
     211    # Check that we can create tasks 
     212    assert_equal true, @root.authorized_to_create_task? 
     213 
     214    post 'create', :task => {} 
     215    assert_response :success 
     216    assert_template 'task/create' 
     217 
     218    assert_equal false, assigns(:task).errors.empty? 
     219    assert_equal true, assigns(:task).new_record? 
     220  end 
     221   
     222  def test_create_POST_valid 
     223    @keyring.action_keys << create_action_key('task/create') 
     224    login('test') 
     225     
     226    # Check that we can create tasks 
     227    assert_equal true, @root.authorized_to_create_task? 
     228 
    42229    now = Time.now 
    43     post 'create', :starting_time_enabled => true, :deadline_enabled => true, 
    44     :task => { 
    45       "task_type_id" => task_type_id, 
    46       "short_description" => "Test task",  
    47       "long_description" => "This is a test task."
    48       "priority" => "4"
    49       "starting_time_field" => {:year => now.year, :month => now.month, :day => now.day, :hour => now.hour, :min => now.min}, 
    50       "deadline_field" => {:year => now.year + 1, :month => now.month, :day => now.day, :hour => now.hour, :min => now.min}, 
    51       "estimated_working_time" => 3.1 
    52    
     230    post 'create', :starting_time_enabled => true, :deadline_enabled => true,  
     231      :task => { 
     232        'task_type_id' => @test_type.id, 
     233        'short_description' => 'Test task',  
     234        'long_description' => 'This is a test task.'
     235        'priority' => '4'
     236        'starting_time_field' => {:year => now.year, :month => now.month, :day => now.day, :hour => now.hour, :min => now.min}, 
     237        'deadline_field' => {:year => now.year + 1, :month => now.month, :day => now.day, :hour => now.hour, :min => now.min}, 
     238        'estimated_working_time' => 3.1 
     239     
    53240    assert_response :redirect 
    54     new_task = assigns(:task) 
    55     assert_redirected_to :action => 'view', :id => new_task.id 
    56     assert_not_nil Task.find(new_task.id) 
    57     assert_equal new_task.ready, true 
    58     assert_not_nil flash[:notice] 
    59     assert_nil flash[:error] 
    60     assert_equal asset, new_task.asset 
    61     # Check that data_permissions are correct 
    62     assert_equal 1, new_task.data_permissions.size 
    63     assert_equal 100, new_task.data_permissions[0].user_group_id 
    64     assert_equal true, new_task.data_permissions[0].group_read 
    65     assert_equal true, new_task.data_permissions[0].group_change_state 
    66     assert_equal true, new_task.data_permissions[0].group_edit 
    67     assert_equal true, new_task.other_read 
    68     assert_equal true, new_task.other_change_state 
    69     assert_equal false, new_task.other_edit 
    70     # Check that TaskEvent was created correctly 
    71     assert_equal 1, new_task.task_events.size 
    72     assert_equal TaskEvent.TYPES[:CREATED], new_task.task_events.first.event_type 
    73   end 
    74  
    75   def test_try_to_create_without_authorization 
    76     login_user() 
    77     asset = Asset.find @assets['for_tasks']['id'] 
    78     @request.session[:selected_asset_id] = asset.id 
    79  
    80     get 'create' 
    81     # Creation form should not be rendered 
     241    assert_redirected_to :action => 'view', :id => assigns(:task).id 
     242 
     243    assert_equal true, assigns(:task).errors.empty? 
     244    assert_not_equal true, assigns(:task).new_record? 
     245     
     246    # Check that timeline event was created 
     247    assert_equal 1, assigns(:task).task_events.size 
     248    assert_equal TaskEvent.TYPES[:CREATED], assigns(:task).task_events.first.event_type 
     249  end 
     250   
     251  def test_remove_POST_valid 
     252    @keyring.action_keys << create_action_key('task/remove') 
     253    login('test') 
     254 
     255    task = create_task_in_state(Task.NEW) 
     256 
     257    post 'remove', :id => task.id, :delete => { task.id.to_s => '1' } 
    82258    assert_response :redirect 
    83259    assert_redirected_to :action => 'list' 
    84     assert_nil flash[:notice] 
    85     assert_not_nil flash[:error] 
    86      
    87     # Adding task fails, because user is unauthorized create one 
    88     task_type_id = @task_types['first']['id'] 
    89     now = Time.now 
    90     post 'create', :starting_time_enabled => true, :deadline_enabled => true, 
    91     :task => { 
    92       "task_type_id" => task_type_id, 
    93       "short_description" => "Test task",  
    94       "long_description" => "This is a test task.", 
    95       "priority" => "4", 
    96       "starting_time_field" => {:year => now.year, :month => now.month, :day => now.day, :hour => now.hour, :min => now.min}, 
    97       "deadline_field" => {:year => now.year + 1, :month => now.month, :day => now.day, :hour => now.hour, :min => now.min}, 
    98       "estimated_working_time" => 3.1 
    99     } 
    100     assert_response :redirect 
    101     assert_redirected_to :action => 'list' 
    102     assert_nil flash[:notice] 
    103     assert_not_nil flash[:error] 
    104     # Task wasn't created 
    105     assert_nil assigns(:task) 
    106   end 
    107  
    108   # NOTE: Now it is possible to create data without permission profiles, when only creator can read the created data. 
    109   def test_try_to_create_without_permission_profiles 
    110     asset = Asset.find @assets['for_tasks']['id'] 
    111     @request.session[:selected_asset_id] = asset.id 
    112     aug = AssetsUserGroup.find_by_asset_id_and_user_group_id(asset.id, @user_groups['func_admins']['id']) 
    113     aug.data_permission_profiles.clear 
    114   
    115     get 'create' 
    116     # Creation form should not be rendered 
    117     assert_response :success 
    118     assert_template 'create' 
    119     assert_nil flash[:notice] 
    120     assert_nil flash[:error] 
    121     # Check that there really was no permission profiles. 
    122     assert asset.data_permission_profiles_for_current_user('Task').empty? 
    123  
    124     # Adding task fails, because user doesn't have any permission profiles 
    125     task_type_id = @task_types['first']['id'] 
    126     now = Time.now 
    127     post 'create', :starting_time_enabled => true, :deadline_enabled => true, 
    128     :task => { 
    129       "task_type_id" => task_type_id, 
    130       "short_description" => "Test task",  
    131       "long_description" => "This is a test task.", 
    132       "priority" => "4", 
    133       "starting_time_field" => {:year => now.year, :month => now.month, :day => now.day, :hour => now.hour, :min => now.min}, 
    134       "deadline_field" => {:year => now.year + 1, :month => now.month, :day => now.day, :hour => now.hour, :min => now.min}, 
    135       "estimated_working_time" => 3.1 
    136     } 
    137     new_task = assigns(:task) 
    138     assert_not_nil new_task 
    139     assert_equal false, new_task.new_record? 
    140     assert_response :redirect 
    141     assert_redirected_to :action => 'view', :id => new_task.id 
    142     assert_not_nil flash[:notice] 
    143     assert_nil flash[:error] 
    144     # Creator can read task 
    145     assert_equal true, new_task.authorized_to_read? 
    146     assert_equal true, new_task.data_permissions.empty? 
    147   end 
    148  
    149   def test_create_empty_task 
    150     asset = Asset.find @assets['for_tasks']['id'] 
    151     @request.session[:selected_asset_id] = asset.id 
    152     # Trying to create empty task 
    153     post 'create', :task => {} 
    154