# HG changeset patch # User Sylvain Beucler # Date 1282508284 -7200 # Node ID 70f5630b1e1ec757024a29887f2f115a4ff26fb2 # Parent 1de0e15f60d696c87a5693b31d9e02a867b7bf1c Tracker: more display form fields diff --git a/doc/scripts/tracker_gendefs.py b/doc/scripts/tracker_gendefs.py --- a/doc/scripts/tracker_gendefs.py +++ b/doc/scripts/tracker_gendefs.py @@ -18,17 +18,17 @@ name = row[1] field_names.append(name) defs[name] = '' - if name == 'field_name': - defs[name] += " 'name' : {\n" - else: - defs[name] += " '"+name+"' : {\n" + defs[name] += " '"+name+"' : {\n" for i,val in enumerate(row): if i <= 0 \ or (complex_defs[name]['display_type'] not in ('TA', 'TF') and tfields[i] == 'display_size'): continue else: + col_name = tfields[i] + if col_name == 'field_name': + col_name = 'name' defs[name] += " " \ - + "'"+tfields[i]+"'" \ + + "'"+col_name+"'" \ + ": " if tfields[i] == 'label' or tfields[i] == 'description': defs[name] += '_("' + val + '"),' @@ -37,11 +37,10 @@ # override priority.required so we have a common # definition for all trackers defs[name] += str(0)+"," - elif (name=='priority' or name=='resolution_id') \ - and tfields[i] == 'empty_ok': - # override priority.empty_ok so we have a common - # definition for all trackers - defs[name] += str(1)+"," + elif name in ('bug_id','group_id','submitted_by','date','close_date',) \ + and tfields[i] == 'display_type': + # not editable, no display_type + defs[name] += "''," elif type(val) == long: defs[name] += str(val)+"," else: diff --git a/migrate_old_savane.sql b/migrate_old_savane.sql --- a/migrate_old_savane.sql +++ b/migrate_old_savane.sql @@ -551,7 +551,7 @@ keep_history, transition_default_auth) SELECT 'bugs', NULL, field_name, use_it, IF(show_on_add<2,0,1), IF(show_on_add%2=0,0,1), show_on_add_members, place, - label, description, custom_display_size, custom_empty_ok, + label, description, display_size, custom_empty_ok, keep_history, transition_default_auth FROM temp_bugs_field_usage JOIN savane_old.bugs_field USING (bug_field_id) @@ -562,7 +562,7 @@ keep_history, transition_default_auth) SELECT 'bugs', NULL, field_name, 0, IF(show_on_add<2,0,1), IF(show_on_add%2=0,0,1), show_on_add_members, place, - label, description, custom_display_size, custom_empty_ok, + label, description, display_size, custom_empty_ok, keep_history, transition_default_auth FROM temp_task_field_usage JOIN savane_old.task_field USING (bug_field_id) @@ -582,7 +582,6 @@ DROP TABLE temp_bugs_field_usage; DROP TABLE temp_task_field_usage; - -- Get rid of field_value duplicates (old mysql/php/savane bug?) -- Apparently this affects 'None' values. -- Give priority to the last one (arbitrarily). diff --git a/savane/tracker/defs.py b/savane/tracker/defs.py --- a/savane/tracker/defs.py +++ b/savane/tracker/defs.py @@ -63,7 +63,7 @@ field_defs = { 'bug_id' : { 'name': 'bug_id', - 'display_type': 'TF', + 'display_type': '', 'scope': 'S', 'required': 1, 'special': 1, @@ -71,7 +71,7 @@ }, 'group_id' : { 'name': 'group_id', - 'display_type': 'TF', + 'display_type': '', 'scope': 'S', 'required': 1, 'special': 1, @@ -79,7 +79,7 @@ }, 'submitted_by' : { 'name': 'submitted_by', - 'display_type': 'SB', + 'display_type': '', 'scope': 'S', 'required': 1, 'special': 1, @@ -87,7 +87,7 @@ }, 'date' : { 'name': 'date', - 'display_type': 'DF', + 'display_type': '', 'scope': 'S', 'required': 1, 'special': 1, @@ -95,7 +95,7 @@ }, 'close_date' : { 'name': 'close_date', - 'display_type': 'DF', + 'display_type': '', 'scope': 'S', 'required': 1, 'special': 1, diff --git a/savane/tracker/models.py b/savane/tracker/models.py --- a/savane/tracker/models.py +++ b/savane/tracker/models.py @@ -41,7 +41,8 @@ # EDIT: actually I think only forms fields cannot be overriden, it # still can be done programmatically -DISPLAY_TYPE_CHOICES = (('DF', _('date field')), +DISPLAY_TYPE_CHOICES = (('', _('not editable')), + ('DF', _('date field')), ('SB', _('select box')), ('TA', _('text area')), ('TF', _('text field')),) @@ -217,6 +218,14 @@ field_definition['transition_default_auth'] = self.transition_default_auth elif field_definition['display_type'] in ('TA', 'TF'): field_definition['display_size'] = self.display_size + print field_definition['name'], field_definition['display_size'] + # Make it easier to access the field from templates: + if field_definition['display_type'] == 'TF': + field_definition['input_size'] = field_definition['display_size'].split("/")[0] + field_definition['input_maxlength'] = field_definition['display_size'].split("/")[1] + else: + field_definition['textarea_cols'] = field_definition['display_size'].split("/")[0] + field_definition['textarea_rows'] = field_definition['display_size'].split("/")[1] if self.group_id is None or field_definition['special'] != 1: field_definition['keep_history'] = self.keep_history if self.group_id is None or field_definition['custom'] == 1: @@ -308,6 +317,10 @@ v.append(o) values.sort(key=lambda x: x['rank']) + # Try to apply a translation: + for v in values: + v['value'] = ugettext(v['value']) + return values # Auto_increment counters @@ -488,7 +501,7 @@ elif self.tracker_id == 'task': return "task" - def get_fields(self): + def get_field_defs(self): """ Return fields definition for this group tracker (default values + group-specific overlay). Only apply sensible @@ -502,7 +515,7 @@ overlay.apply_on(fields[name]) for name in fields: if fields[name]['display_type'] == 'SB': - fields[name]['values'] = field_get_values(self.tracker_id, self.group, + fields[name]['choices'] = field_get_values(self.tracker_id, self.group, fields[name], self.get_value(name)) return fields @@ -510,7 +523,7 @@ """ Return displayable fields, ordered by rank """ - fields = self.get_fields().copy() + fields = self.get_field_defs() ret = [] for name in fields.keys(): if (not (fields[name]['required'] or fields[name]['use_it']) @@ -565,15 +578,17 @@ html += u'' % (name) elif field['display_type'] == 'SB': html += u'' elif field['display_type'] == 'TA': + # TODO: display_size html += u'' % (name, value) elif field['display_type'] == 'TF': + # TODO: display_size html += u'' % (name, value) html += '\n' diff --git a/templates/tracker/item_form.html b/templates/tracker/item_form.html --- a/templates/tracker/item_form.html +++ b/templates/tracker/item_form.html @@ -27,14 +27,17 @@ {% trans "Submitted by" %}{% trans ": " %} - {% if object.submitted_by %} - {{object.submitted_by.get_full_name}} - <{{object.submitted_by.username}}> - {% else %} - {% trans "Anonymous" %} - {% endif %} - + {% if object.submitted_by %} + {{object.submitted_by.get_full_name}} + <{{object.submitted_by.username}}> + {% else %} + {% trans "Anonymous" %} + {% endif %} + + + + {% trans "Submitted on" %}{% trans ": " %} @@ -43,10 +46,43 @@ {{object.get_form}} + + {% trans "Summary" %}{% trans ": "%} + + + + +

{% trans "Post a comment" %}

+

{% trans "Add a new comment" %}{% trans ": " %}
+ +

+

{% trans "Comment type & canned response" %}{% trans ": " %}
+ +   + {% if 0 %} + + {% else %} + {% trans "No canned response available" %} +   + + ({% trans "Or define a new canned response" %}) + + {% endif %} +

+

{% trans "Discussion" %}

{% trans "Attached files" %}