Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(349)

Side by Side Diff: grit/format/policy_templates/writers/doc_writer.py

Issue 544113002: Add optional mandatory policy setting for template generation (Closed) Base URL: https://chromium.googlesource.com/external/grit-i18n.git@master
Patch Set: Adds support for new template writers Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 6
7 from xml.dom import minidom 7 from xml.dom import minidom
8 from grit import lazy_re 8 from grit import lazy_re
9 from grit.format.policy_templates.writers import xml_formatted_writer 9 from grit.format.policy_templates.writers import xml_formatted_writer
10 10
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 Args: 172 Args:
173 parent: The DOM node for which the example will be added. 173 parent: The DOM node for which the example will be added.
174 policy: A policy of type 'list', for which the Windows example value 174 policy: A policy of type 'list', for which the Windows example value
175 is generated. 175 is generated.
176 ''' 176 '''
177 example_value = policy['example_value'] 177 example_value = policy['example_value']
178 self.AddElement(parent, 'dt', {}, 'Windows:') 178 self.AddElement(parent, 'dt', {}, 'Windows:')
179 win = self._AddStyledElement(parent, 'dd', ['.monospace', '.pre']) 179 win = self._AddStyledElement(parent, 'dd', ['.monospace', '.pre'])
180 win_text = [] 180 win_text = []
181 cnt = 1 181 cnt = 1
182 key_name = self.config['win_reg_mandatory_key_name'] 182 if self.CanBeRecommended(policy) and not self.CanBeMandatory(policy):
183 key_name = self.config['win_reg_recommended_key_name']
184 else:
185 key_name = self.config['win_reg_mandatory_key_name']
183 for item in example_value: 186 for item in example_value:
184 win_text.append( 187 win_text.append(
185 '%s\\%s\\%d = "%s"' % 188 '%s\\%s\\%d = "%s"' %
186 (key_name, policy['name'], cnt, item)) 189 (key_name, policy['name'], cnt, item))
187 cnt = cnt + 1 190 cnt = cnt + 1
188 self.AddText(win, '\n'.join(win_text)) 191 self.AddText(win, '\n'.join(win_text))
189 192
190 def _AddListExampleLinux(self, parent, policy): 193 def _AddListExampleLinux(self, parent, policy):
191 '''Adds an example value for Linux of a 'list' policy to a DOM node. 194 '''Adds an example value for Linux of a 'list' policy to a DOM node.
192 195
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 def _AddDictionaryExampleWindows(self, parent, policy): 282 def _AddDictionaryExampleWindows(self, parent, policy):
280 '''Adds an example value for Windows of a 'dict' policy to a DOM node. 283 '''Adds an example value for Windows of a 'dict' policy to a DOM node.
281 284
282 Args: 285 Args:
283 parent: The DOM node for which the example will be added. 286 parent: The DOM node for which the example will be added.
284 policy: A policy of type 'dict', for which the Windows example value 287 policy: A policy of type 'dict', for which the Windows example value
285 is generated. 288 is generated.
286 ''' 289 '''
287 self.AddElement(parent, 'dt', {}, 'Windows:') 290 self.AddElement(parent, 'dt', {}, 'Windows:')
288 win = self._AddStyledElement(parent, 'dd', ['.monospace', '.pre']) 291 win = self._AddStyledElement(parent, 'dd', ['.monospace', '.pre'])
289 key_name = self.config['win_reg_mandatory_key_name'] 292 if self.CanBeRecommended(policy) and not self.CanBeMandatory(policy):
293 key_name = self.config['win_reg_recommended_key_name']
294 else:
295 key_name = self.config['win_reg_mandatory_key_name']
290 example = str(policy['example_value']) 296 example = str(policy['example_value'])
291 self.AddText(win, '%s\\%s = "%s"' % (key_name, policy['name'], example)) 297 self.AddText(win, '%s\\%s = "%s"' % (key_name, policy['name'], example))
292 298
293 def _AddDictionaryExampleLinux(self, parent, policy): 299 def _AddDictionaryExampleLinux(self, parent, policy):
294 '''Adds an example value for Linux of a 'dict' policy to a DOM node. 300 '''Adds an example value for Linux of a 'dict' policy to a DOM node.
295 301
296 Args: 302 Args:
297 parent: The DOM node for which the example will be added. 303 parent: The DOM node for which the example will be added.
298 policy: A policy of type 'dict', for which the Linux example value 304 policy: A policy of type 'dict', for which the Linux example value
299 is generated. 305 is generated.
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 457
452 dl = self.AddElement(parent, 'dl') 458 dl = self.AddElement(parent, 'dl')
453 data_type = self._TYPE_MAP[policy['type']] 459 data_type = self._TYPE_MAP[policy['type']]
454 if (self.IsPolicySupportedOnPlatform(policy, 'win') and 460 if (self.IsPolicySupportedOnPlatform(policy, 'win') and
455 self._REG_TYPE_MAP.get(policy['type'], None)): 461 self._REG_TYPE_MAP.get(policy['type'], None)):
456 data_type += ' (%s)' % self._REG_TYPE_MAP[policy['type']] 462 data_type += ' (%s)' % self._REG_TYPE_MAP[policy['type']]
457 self._AddPolicyAttribute(dl, 'data_type', data_type) 463 self._AddPolicyAttribute(dl, 'data_type', data_type)
458 if policy['type'] != 'external': 464 if policy['type'] != 'external':
459 # All types except 'external' can be set through platform policy. 465 # All types except 'external' can be set through platform policy.
460 if self.IsPolicySupportedOnPlatform(policy, 'win'): 466 if self.IsPolicySupportedOnPlatform(policy, 'win'):
467 if self.CanBeRecommended(policy) and not self.CanBeMandatory(policy):
468 key_name = self.config['win_reg_recommended_key_name']
469 else:
470 key_name = self.config['win_reg_mandatory_key_name']
461 self._AddPolicyAttribute( 471 self._AddPolicyAttribute(
462 dl, 472 dl,
463 'win_reg_loc', 473 'win_reg_loc',
464 self.config['win_reg_mandatory_key_name'] + '\\' + policy['name'], 474 key_name + '\\' + policy['name'],
465 ['.monospace']) 475 ['.monospace'])
466 if (self.IsPolicySupportedOnPlatform(policy, 'linux') or 476 if (self.IsPolicySupportedOnPlatform(policy, 'linux') or
467 self.IsPolicySupportedOnPlatform(policy, 'mac')): 477 self.IsPolicySupportedOnPlatform(policy, 'mac')):
468 self._AddPolicyAttribute( 478 self._AddPolicyAttribute(
469 dl, 479 dl,
470 'mac_linux_pref_name', 480 'mac_linux_pref_name',
471 policy['name'], 481 policy['name'],
472 ['.monospace']) 482 ['.monospace'])
473 dd = self._AddPolicyAttribute(dl, 'supported_on') 483 dd = self._AddPolicyAttribute(dl, 'supported_on')
474 self._AddSupportedOnList(dd, policy['supported_on']) 484 self._AddSupportedOnList(dd, policy['supported_on'])
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 } 684 }
675 685
676 # A simple regexp to search for URLs. It is enough for now. 686 # A simple regexp to search for URLs. It is enough for now.
677 self._url_matcher = lazy_re.compile('(http://[^\\s]*[^\\s\\.])') 687 self._url_matcher = lazy_re.compile('(http://[^\\s]*[^\\s\\.])')
678 688
679 def GetTemplateText(self): 689 def GetTemplateText(self):
680 # Return the text representation of the main <div> tag. 690 # Return the text representation of the main <div> tag.
681 return self._main_div.toxml() 691 return self._main_div.toxml()
682 # To get a complete HTML file, use the following. 692 # To get a complete HTML file, use the following.
683 # return self._doc.toxml() 693 # return self._doc.toxml()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698