Release Notes

Released: 2014-02-13
 

Client API Changes
 

  • updated the API methods docstring for a bunch of task related calls
  • added client api mappings to get_input_tasks and get_output_tasks in both javascript and python

Bug Fixes

  • added offset and skip_duplicate kwarg to add_initial_tasks() API function
  • fixed a divide by zero bug in the get_completion method in simple_status_attr.py
  • Fixed the issue of the check-box in security widget. Enable to save the changes of access rule when check-box has been checked.
  • added better doc string for FileCheckin descibing different modes
  • added dictionary support in sobject for Expression, e.g. an env_sobject
  • added snapshot env_sobject to be used in notification message like @GET(snapshot.process) where the event is applicable like (checkin|...)
  • made Add Tasks to Selected run asynchronously
  • fixed an issue in expression by unifying the key for expression so there's no mismatch when getting the sobjects and flat cache for an expression
  • skipped setting sthpw/change_timestamp when inserting new sobjects
  • minimized import of Project class in Trigger calling
  • ensured there is no infinite loop when closing toggled content div
  • Fixed the notes sheet error by adding the missing function get_aux_info(my) in TableLayoutWdg.
  • Moved the missing function from table_layout_wdg.py to base_table_layout_wdg.py
  • optimized speed of committing sobjects by turning triggers to none for sobject_log, change_timestamp,  and ticket insert.
  • passed in project code into the retrieval of triggers
  • fixed the bug on the clicking and hiding of toggled content so that not all toggled contents are closed at the same time.
  • turned off order_by with sub query search.
  • updated the WorkHoursElementWdg to use today's date as starting point if days_per_page is less than 7
  • fixed a display issue in bottom row turning yellow on async loading.
  • added days_per_page, unit, day_width, width, and use_straight_time option to WorkHoursElementWdg
  • used the full search_type in the creation of column in Create New Column / Edit Column Definition
  • fixed a typo bug on TextFilterElementWdg
  • fixed the "exists" condition for SelectFilterElementWdg
  • fixed small issue with finding src folder for upgrade on team
  • fixed a bug where a widget within the EditLayoutWdg does not have a HtmlElement based title
  • fixed regular expressions in dashboards to use database agnostic comparisons
  • updated AD module so that user info like first_name, last_name are retrieved from sn and givenName
  • clear the table cache at the end of DropTable command
  • improved catching of plugin creation error
  • made Remove of versioned plugin intalled from zip file working properly
  • check for login only if it's not drawing the login page in HashPanelWdg
  • commented out the setting of chunk_size and chunk_num in BaseTableLayoutWdg to fix a bug where a limit higher than 100 appear to be ignored when saved
  • prevented guest user from seeing admin site
  • fixed a bug in the checkin subcontext select drawing

New Features

  • added support for "is on" in search filter
  • updated StatusLog to use SearchType.create to create a new status log
  • added Search.add_day_filter() expecting a date string for filtering
  • updated add_message to only enable with message_event column set for an sType
  • added prod_setting bid_duration_unit used in add_initial_tasks (minute/hour)
  • updated checkin_context/checkin_type feature in TableLayoutWdg
  • fixed a create New Folder js bug in Manage Side Bar
  • added spt.table.get_search_values()
  • fixed a bug in Async loading of table by passing in the search filter data for each subsequent load. It affects widget like TaskElementWdg 
  • added checkin_context and checkin_type option to ViewPanelWdg and TableLayoutWdg
  • added "is on" to support date for SelectFilterElementWdg
  • added support for triggers mode so that user can choose to turn off triggers during CSV Import
  • made Publish Publish output the contents properly like Export with varying levels of subfolders
  • added support for {process} in naming as a short cut for {snapshot.process}
  • made Html5 Upload work in Hidden Row as well
  • set up the context menu only when it's not running in temp mode.
  • displayed the current user signing out in the log message when accessing the SignOutCmd in the Page Header area.
  • added a better message telling the user that the Ingest Files widget requires a name column for the sType
  • updated Project Essentials > Notes to have a simple keywords search
  • added provision for where password for admin is NULL
  • added unicode_escape kwarg to Sql.quote() to allow SQLServer handling of unicode characters in the format N'value'
  • added a get_cookies function
  • adjusted the position of close button in Tab so that it aligns vertically better
  • updated the get_constraints for Sqlite Impl so that it will ignore a non-existent table
  • updated and simplified ExpressionFilterElementWdg to assume using @SEARCH() expression
  • added assigned_values_expr option to TaskElementWdg
  • changed load_js to be more flexible (enabling external javascript libraries)
 

Database Schema Changes
 

 

Released: 2013-12-16
 

Client API Changes

  • added checkin_type to add_file() API call so one can specify auto or strict

Bug Fixes

  • only run DbContainer.release_thread_sql() for deleting a sqlite project
  • fixed a problem in saving timestamp in Sqlite
  • updated the naming, search and sql tests to work better with Sqlite
  • updated transaction logging so it can handle checking in of non-ASCII file name
  • made complex expression in Expression Element exportable thru CSV
  • updated upgrade script for file_name in file table for MySQL
  • added expression_test to changed the expression evaluation of vars so that it can support non-ASCII characters
  • Fixed the issue that check in pdf failed and took so long to check-in.
  • Added statement to check whether user has imagemagick converter.
  • Added PDF to NORMAL EXTENSION, so the check-in will not need the metadata of PDF files.
  • fixed a bug in drawing of search filter criteria in saved search
  • Header can be wrapped now by having kwargs wrap_headers as true for a table.
  • Expandable Text Element Widget is now editable(Edit mode > Edit Enable option is active now)
  • fixed possibility of SwapDisplayWdg losing track of whether it is open or not
  • added SObject.is_day_column() to fix the day column saving and displaying issue when saving work hours
  • fixed a display bug in Work Hour Element Widget where today falls on the weekend, it should still provide a special bkgd color on top of the thick border
  • fix bug where returned was assumed an sobject, but was really a list
  • ensured @GET and @GETALL expressions are cached with different keys
  • fixed add_join() implementation in SQLServer so that the prefix is used before ON
  • made it possible to set a Image metadata parser on a file detail widget
  • improved login page for Perforce
  • fixed calendar alignment in Element Column Definition
  • fixed logging into Perforce
  • fixed for "This table [annotation] does not exist for database [sthpw]" on Admin site.
  • added ability to set parent key and set extra data on ingest widget
  • added PythonElementWdg in the list of elements available for a table
  • added SOBJECT_ID and SOBJECT_CODE variables to ExpressionElementWdg
  • added ability to set label on SelectWdg on element definition
  • fixed Directory to handle depth better
  • fixed the case when datetime is empty for sobjects and it is trying
  • to convert timezone
  • converted ExpressionElementWdg to server local time
  • edited process_value for SQLServerImpl so that the string related manipulation is only run when it's a string
  • added unicode conversion on the data going to jsondump for SObject._add_message()
  • added process=* pipeline=* to HI MED and LOW access level so that task security work accordingly in TaskElementWdg and TaskStatusSelectWdg
  • added handling of an integer number column being a long number in Search.add_relationship_filters()
  • added more latest_versionless test and current_versionless tests to checkin_test.py
  • added ability to explicitly set the width of a button
  • fixed html5 upload from check-in widget
  • fixed faulty logic on dynamic loading.
  • another fix for column add
  • fix on create project if default project does not exist
  • updated the SQLServer process_value for timestamp so that it would handle datetime object properly
  • handled the case when it errors out on SPTDate.convert for a timestamp before epoch
  • updated upgrade script to match code with search_type in search_object table
  • handled case where config file does not exist
  • updated upgrade_script for sthpw/message
  • fixed logic on database specific column adds
  • updated setup expression docs
  • made System Config save and refresh properly in 4.1 by silencing a potential 502 proxy error
  • set the layout on load of table layout wdg regardless of whether the onload js has been loaded

 

New Features

  • made schema views refreshable using "link" url
  • added concept of root_dir in the DirListWdg
  • made FileDetailWdg be able to take a snapshot as well
  • added ability to just set an sobject to FileDetailWdg.  This will just grab a random latest snapshot for now
  • added the relevant option back to KeywordFilterElementWdg
  • updated expression to handle a single connect
  • added SObjectConnection.get_search()
  • fully implemented the show_context_menu option for Table Layout and Table Layout with Search
  • put default label on select widget for status and assigned
  • added empty option to task status drop down
  • edited task_security_wdg to handle the rule when process or pipeline or both equals to '*', it will set the corresponding group_name true in security_wdg.py.
  • improved ExpressionElementWdg handling of datetime object so they are displayed as string
  • improved Common.process_unicode_string() to encode only when the src is an unicode object
  • improved SelectFilterElementWdg to use a search instance when being run
  • improved the use of SelectFilterElementWdg with column starting with "connect"
  • added the support of "connect" in @SEARCH
  • Added delay in run functions under Timed and Scheduler Thread classes
  • Added condition to produce project URL in the event that value for web is non-existent
  • updated File Browser view execution of a SQL join so it displays an item fine when there are sobjects
  • added @SUBSTITUTE for string in expression language

 

Database Schema Changes
 

 

Released: 2013-11-26
 

Client API Changes

  • updated API method query_snapshots() to better support single=True
  • updated API method get_snapshot() to better support sobject without a code column or value

 

Bug Fixes

  • if index is set to true for a custom url and and index is not found, it resorts to drawing the regular admin page
  • opens a new page to respect the addresss port
  • Gear menu -> Print -> (all 3) print options
  • a duplicated entry when the user unchecks and checks the same checkbox before saving
  • fixed a bug in Task or Process Security where a user could potentially create
  • fixed a bug in Task Security where it was not removing the task security entries defined in earlier version
  • fixed script editor clearing on save.
  • fixed script editor going to last line on load under most conditions.
  • fixed the issue that function browse_folder always set select_dir = True.
  • Added option Quick select file, quick select directory and quick select in folder menu.
  • fixed provision when my.order_element is NULL
  • added condition to avoid a setup error in ViewPanelWdg if just old default layout is loaded
  • correctly display /link/<link> as opposed to /tab/<link>
  • fixed hash links on menu bar in custom themes.  They now
  • fixed a bug in Create Project Wizard in the Theme selection UI for Tactic TEAM
  • added screenshot of sameple_02 theme
  • fixed the bug of Sqlite implementation of nullable by properly detecting the NOT NULL constraint and avoided error messages when inserting new items
  • fixed Sqlite implementation of process_value of timestamp column type to fix the bug in insert with auto CURRENT_TIMESTAMP value
  • fixed stack error when default project is pointing to a project that does not exist.
  • added condition for Sqlite when deleting a project so it won't check it if it still exists since on checking it will create an empty database again.
  • updated sthpw upgrade script to include code in sthpw/change_timestamp
  • improved the initialization of Script Editor and set the initial theme to Twilight
  • updated Naming to account for not having a file object
  • fixed a bug in the SnapshotIsLatest Trigger
  • put error handling when running ffprobe for metadata extraction
  • fixes to root url using browser history
  • with the sqlserver_timestamp type, a disabled TextWdg is returned for editing.
  • filtered out timestamp as sqlserver_timestamp for SQLServerImpl
  • fixed the PythonCmd reporting if a script doesn't exist
  • fixed the bug in Create New Column where the Enable Edit checkbox is disabled if the user hasn't selected any Widget type.
  • corrected the spt.table.get_data function in the JS API.
  • edited security_type to set pre-checked box based on the Security Access Levels chart.
  • fixed duplicate chat messages.
  • fixed a bug by remembering the initial editablility state when switching between different widgets in Edit Column Definition. It only affects the case when switching from an editable type like Formatted to Expression widget.
  • handled the case for ExpressionElementWdg when the user does not provide any expression
  • fixed incorrect tabbing issue in ckeditor_wdg.py
  • better handling of icon generation failure during project creation
  • added import of PIL in the old and new way so it works in different python on different OS
  • fixed bad context on check-in new file from context menu (Check in New File) of table
  • fixed bug on Sqlite where joins failed dued to bad building of database.scehema scoping (which is empty on Sqlite)
  • fixed a bug in Check in New File context menu by passing in the auto checkin_type and upload/uploaded mode properly
  • set the layout on load of table layout wdg regardless of whether the onload js has been loaded
  • updated File Browser view execution of a SQL join so it displays an item fine when there are sobjects
  • Fixed the issue that in Process Security when group='process' and @process='*', check-boxes cannot be saved.
  • workaround for resizing of images on Qt OSX when viewing documentation.  PIL is on TEAM and thus was ignoring processing of image links
  • made System Config save and refresh properly  by silencing a potential 502 proxy error
  • updated upgrade_script for sthpw/message
  • handled case where config file does not exist

 
 

New Features

  • added "add_class" function to ActionButtonWdg so that it can be properly redirected on Qt on OSX
  • disabled old style button due to behavior issues.  Right now, OSX Team buttons text are offset
  • made OSX team use old style buttons because regular html input buttons has
  • text offset on PySide in OSX.
  • gave table element widgets the ability to declare that they
  • cannot be async loaded and force the table to load all rows inline. This is currently False for Gantt widget which will need some work to support dynamic loading
  • added condition to produce project URL in the event that value for web is non-existent
  • removed message log from the transaction log and other places such as sobject log
  • added option to set text_id attribute for the CKEditorWdg
  • changed the default auto-generated file_naming with a new sType to "{sobject.name}_v{version}.{ext}"
  • let RawTableElementWdg create a column of the same name by default
  • added a config entry that is required to turn scheduler on
  • more fixes to the scheduled triggers in monitor.py
  • added better configurability for scheduled tasks
  • updated timed triggers to use scheduler.
  • added default image for video player and to use thumb if one is in the snapshot
  • hid app_busy from links in admin site
  • hid app_busy when loading tabs
  • added columns named id_column varchar(256) and default_layout varchar(32) to bootstrap_schema.sql for all database types
  • added utility script to run sql_convert for all supported database types
  • added a SQL compliant way of stating a portion of where condition return empty result set.
  • added a general video icon file
  • added m4v to the list of video file extension VIDEO_EXT
  • skipped the files with NORMAL_EXT and VIDEO_EXT when running icon generation
  • added Snapshot.set_booleans() so that is_latest and is_current are set in the update phase of snapshot creation during a check-in
  • improved efficiency of SnapshotIsLatestTrigger by running update_versionless only in update
  • updated the WebEnvironmnet.get_project_url() to return a complete url
  • updated SelectWdg to take a search_key directly from its kwargs for used in relative mode
  • sthpw_upgrade.py: sinqle quoted to path to allow script to be found on Windows machine even with forward slashes
  • made remove_temp_column a classmethod in SQLServer Implementation
  • updated naming test to use the current environment's base asset_dir
  • added BASE_URL and PROJECT_URL variables in the expression language
  • made hash optional on new tab so that it can be conrolled
  • and does not produce an unrefreshable link in the url
  • Added C:/ProgramData/Tactic/data/assets as win_32_client_repo entry value.
  • minor improvments to handling custom urls.  This passes variables from the url hash in as variables into the receiving widget
  • edited Quick Select Directory behavior's is_sandbox to be false in checkin_wdy.
  • made the default to load the Project Startup MainWdg instead of an empty ViewPanelWdg
  • spt.panel.refresh() is switched to load asynchronously by default unless async:false is specified
  • updated SearchTypeInputWdg to use schema to display the current project's list of sTypes
  • added column option to SimpleTableElementWdg
  • renamed  the search_type element in sthpw/pipeline to adopt the name stype to prevent the SearchTypeInputWdg dropdown showing up with red selection items
  • updated naming and naming test to properly support old style expresion and TACTIC expression language mixed in file or dir naming.
  • added the feature so any element in a simple search view can be set to invisible with view='false'
  • added "class" kwarg to SelectWdg
  • added @GETALL to the tactic expression language which doesn't try to eliminate duplicated sobjects when traversing through hierarchy
  • skipped refreshing the grouped data row during column refresh if it's not found. 
  • updated the conf file for sthpw/login with added department and password re-enter column
  • made the work hours refresh to carry out for the whole page.
  • improved running of encode of ImageMagick Metadata parser
  • fixed checkout of files located in sub folders from the sandbox.  The change to using checkout of specific file types caused the checkout to ignore these subfolders.
  • updated ReplaceWithValueExpressionFilterElementWdg and TaskConnectFilterElementWdg with last_modified_days option
  • caught the error properly in ExpressionElementWdg on the get_display level to avoid error during calculation of the bottom widget
  • made the @SUM operation not throw and error when a column does not exist
  • replaced & with &amp; in HashPanelWdg
  • added init_load_num as a settable option for ViewPanelWdg and TableLayoutWdg
  • raised a SetupException in ViewPanelWdg if an empty search_type is passed in
  • added server code that enables perforce integration with Team
 

 

Database Schema Changes

  • added SQLServer specific statement for dropping NOT NULL constraint
  • made sure any columns named "timestamp" are double quoted (and leave any column types named timestamp un-quoted) for new installation

 

Released: 2013-11-05
 

Client API Changes
 

  • added the support of include_dependencies to the js API method delete_sobject()
  • added log_message()

 

Bug Fixes
 

  • moved tempdir path set to a location where Config path already exists
  • fixed a bug for undeclared search_id in Snapshot
  • restored tabbing in ingest_wdg.py
  • improved the snapshot.py to remove the limitation to have 'code' column.
  • fixed a bug in ActionButtonWdg by adding the spt_label class to the cell
  • made export_matched CSV Export to use init_load_num of -1
  • reverted the last Expression change which was an attempt to fix the calc_mode fast issue
  • made the table only draw the bottom and insert row and handle the grouping logic when temp is not True
  • turned off async loading of the group column has group_bottom defined
  • initial test implementation for async popup loading
  • made keyword search dangling checkbox be a more friendly drop down widget.
  • changed metadata parser selection logic in metadata.py
  • added a check to skip ImageMagick lines which don't follow the appropriate format.
  • fixed a bug in async kwarg for spt.panel.load
  • used async: false in the drawing  of CalendarWdg
  • fixed a bug in display of Note Adding UI
  • fixed the loading issue in Manage Security sub tabs
  • added init_load_num kwarg to TableLayoutWdg to prevent the use of async loading when it's set to less than 0
  • fixed a background color issue when setting the default init_load_num to 3
  • updated the Notification setup to show all processes of a pipeline when files are checked in.
  • updated Trigger Detail Widget and allowed a process dropdown to display in search_type mode
  • hid the process dropdown in pipeline mode
  • removed the not-yet-implemented task_complete option
  • switched to use the default widget to display exception log
  • disabled the use of filter kwarg in FastTableLayoutWdg to override the Filter  Data directly
  • cleaned up code in misc classes to avoid stacktrace while grouping with WorkHoursElementWdg
  • fixed ordering with grouping turned by disabling the post-order in subsequent chunk loading
  • updated the SearchKey.get_by_search_keys() method to allow multiple sType
  • fixed the issue that the 'Edit Process' action panel in checkin_wdg does not pop-up when it has been initialized at the first time.
  • fixed the bug in setting up notification for a previous process when files are checked in
  • removed a duplicated method in Pipeline class.
  • fixed __NONE__ search type error when parent key is this value
  • allowed long type to write to search_id column on SObject.set_sobject_value()
  • fixed a bug where the keep_order kwarg of Search.get_by_search_keys() is not respected
  • fixed a bug in ProcessInputWdg to prevent a NoneType error for the empty selection.
  • fixed the bug where search_table_<id> event is not registered when the insert button is now drawn
  • moved the few load behavior in a Fast table into the handle_load_behavior() method to improve efficiency during async loading
  • skipped remapping data when viewing the sobject_list data in table view (raw data)
  • sqlite does no support database scoping.  This fix ensures that SQL statements for select, insert and update do not scope by database
  • fix for when expression in naming evaluates to None
  • small fix to maintain tab on save in custom layout editor
  • made a slight more descriptive message on error of an expression in a table
  • TextInputWdg behave properly under EditWdg
  • made async callback report the error in a popup properly
  • hid the Deliver to: checkbox in Check-in Widget if the process dropdown is empty
  • fixed the drawing bug in TaskDetailPipelineWrapperWdg 
  • Edited vendor MySql to support customized encoding and charset.
  • fixed a variable instantiation bug in metadata parsing
  • fixed the display bug of the context dropdown in the History tab of a Check-in Widget when the user switches process
  • added fix when from and to process are the same.  It will check the to/from pipelien and to/from expression values to evaluate which is relevant
  • fix for search_key variable getting overriden and producing
  • catch any errors and continue when resizing image with convert
  • slightly changed logic for display processes in check-in widget
  • fixed condition where output sobjects in pipeline delivery is empty but still shows process
  • fixed a bug in PluginInstaller which checks if an sobject has a column called 'project_code'
  • when value was empty
  • fixed a stacktrace bug in CheckinWdg where the number of paths doesn't match the number of md5 values for newly created folder in sandbox
  • made SearchWdg instantiated only once during the initial draw of ViewPanelWdg and subsequent refresh of TableLayout
  • filter_xml kwarg is not longer used.
  • fixed a bug in FilterData so that it can handle a single dictionary in a json filter as opposed to a list of dictionaries
  • fixed the Template Project creation error message.. added hint to tell the user to click on the Update button in Template Project view first
  • optimized logic in table layout so as to no call functions redundantly: ie: sobject.is_insert()
  • renamed the option for TaskElementWdg from autocreate_tasks to show_filler_tasks
  • setting the search_wdg during the draw of a ViewPanelWdg instead of passing it in as an kwarg since it's not serializable
  • updated jar file with Application-Name TACTIC
  • optimized tile layout slightly
  • made search button asynchronous
  • fixed a bug in get_client_repo_dir and get_client_handoff_dir where it wasn't reading from the tactic.conf file properly when the client OS is not windows
  • updated jar file for less security confirmation popup
  • added handling of the case when the parent of a task cannot be located when clicking on Work on Task button
  • fixed bug when trying to eval on objects when they are not strings
  • handled failed icon generation better to let a file check-in to go through
  • fixes to EditWdg to better accommodate forms
  • support for compact mode on sequence/async load
  • made the sidebar repeat interval be 3 seconds
  • made async the default
  • fixed watermark case when output dir does not exist
  • made server.get_snapshot() use search_code instead of search_id
  • made Python API eval and query return unicode characters properly in Custom Layout Editor or python-based client-server queries
  • added method to sanitize file metadata generated from ffprobe or identify so they can in the xml transaction log
  • fixed ingestion failure
  • removed debug border.  removed \n on html output
  • optimized SingleButtonWdg and IconButtonWdg to use global behaviors
  • made one of the button widgets use a global behavior
  • fixed syntax error in html5_upload

 

 
 

 

New Features
 

  • added ability to get path from ThumbWdg2
  • added optimization to spt.popup
  • Added optimisations for procession javascript libraries
  • added ability to register js libraries which allows widget to not resend and process: ie: spt.table.
  • Changed the grouping label for the sobjects that don't belong to a group from "(unknown)" to "---"
  • added ability to inject wizard
  • added ability to use "views" in wizards
  • added docx and xlsx to the list of file extensions that skip icon generation
  • added the ability to deliver check-ins to different stypes using to_expression attribute in the connection in a pipeline
  • added async loading to tile layout
  • added a CalendarWdg into the page the first time it is drawn for cloning
  • added dynamic loading of rows in table layout
  • added extensions to naming to have expressions mixed with shorthand
  • added class spt_table_row_<id> so that tile layout can act like a table layout
  • added workarea checkin mode
  • added html5 checkin in check-in widget
  • added ability to use a reference element in custom layout
  • added SearchType.get_related_types() to get the downstream sTypes to delete
  • added help aliases to Ingestion Widget, Database Resources, Custom URL
  • added ability to set process in the metadata widget
  • add a project type "resource" to handle projects that are just database resources
  • added show_loading kwarg to spt.panel.load
  • added a break clear=all for CustomItemLayouts to allow for <div> that are float left
  • added ability to delete in MongoDb
  • added ability to create db resource project
  • hide _id from edit widget when inserting into MongoDb
  • added support for limit and skip on MongoDb
  • added load="async" and "sequence" option on custom layout
  • added new attribute 'Encoding' and 'Charset' for database settings in MySQL option under system configuration page.
  • added ability to specify an input expression on a pipeline process
  • added group_by option to PythonElementWdg

 
 
 

Database Schema Changes

  • added message, message_log, subscription tables
 
Released: 2014-02-13

Pages