def getVocabulary(self, instance): """ return the vocabulary by name from atvocabularymanager """ vt = getToolByName(instance, TOOL_NAME) vocab = vt.getVocabularyByName(self.vocab_name) if vocab is None: raise KeyError('Vocabulary id not found in '+\ 'portal_vocabularies : %s' % self.vocab_name) assert(IVocabulary.isImplementedBy(vocab)) return vocab
def indexTree(object, **kw): for field in obj.schema.fields(): if not IVocabulary.providedBy(field.vocabulary): # Wrong vocabulary type continue termUIDs = field.getRaw(obj) if not isinstance(termUIDs, list): termUIDs = [termUIDs] all_dicts = field.vocabulary.getVocabularyDict(obj) path = [] for term in termUIDs: path.extend(getPath(term, ('', all_dicts))) return path
def populate_archetype(self, obj): request = self.request fields = obj.Schema().fields() for field in fields: name = field.__name__ if name in ['title', 'id']: continue if shasattr(field, 'vocabulary') and IVocabulary.providedBy( field.vocabulary): vocab = field.vocabulary.getVocabularyDict(obj) value = vocab.keys()[random.randint(0, len(vocab.keys()) - 1)] elif atfield.IStringField.providedBy(field): validators = [v[0].name for v in field.validators] if 'isURL' in validators: value = 'http://en.wikipedia.com/wiki/Lorem_ipsum' elif 'isEmail' in validators: value = '*****@*****.**' else: value = self.get_text_line() elif atfield.ITextField.providedBy(field): widget = field.widget if isinstance(widget, RichWidget): value = self.get_rich_text() else: value = self.get_text_paragraph() elif atfield.IBooleanField.providedBy(field): value = random.randint(0, 1) and True or False else: continue field.set(obj, value) if IATEvent.providedBy(obj): days = random.random() * 20 * (random.randint(-1, 1) or 1) value = DateTime() + days obj.setStartDate(value) obj.setEndDate(value + random.random() * 3)
def populate_archetype(self, obj): request = self.request fields = obj.Schema().fields() for field in fields: name = field.__name__ if name in ['title', 'id']: continue if shasattr(field, 'vocabulary') and IVocabulary.providedBy(field.vocabulary): vocab = field.vocabulary.getVocabularyDict(obj) value = vocab.keys()[random.randint(0, len(vocab.keys())-1)] elif atfield.IStringField.providedBy(field): validators = [v[0].name for v in field.validators] if 'isURL' in validators: value = 'http://en.wikipedia.com/wiki/Lorem_ipsum' elif 'isEmail' in validators: value = '*****@*****.**' else: value = self.get_text_line() elif atfield.ITextField.providedBy(field): widget = field.widget if isinstance(widget, RichWidget): value = self.get_rich_text() else: value = self.get_text_paragraph() elif atfield.IBooleanField.providedBy(field): value = random.randint(0,1) and True or False else: continue field.set(obj, value) if IATEvent.providedBy(obj): days = random.random()*20 * (random.randint(-1,1) or 1) value = DateTime() + days obj.setStartDate(value) obj.setEndDate(value+random.random()*3)
def populate_archetype(obj, data): fields = obj.Schema().fields() for field in fields: name = field.__name__ if name in ['id']: continue if name == 'title': value = data['title'] elif shasattr(field, 'vocabulary') and \ IVocabulary.providedBy(field.vocabulary): vocab = field.vocabulary.getVocabularyDict(obj) value = vocab.keys()[random.randint(0, len(vocab.keys()) - 1)] elif atfield.IStringField.providedBy(field): validators = [v[0].name for v in field.validators] if 'isURL' in validators: value = 'http://en.wikipedia.com/wiki/Lorem_ipsum' elif 'isEmail' in validators: value = '*****@*****.**' else: value = get_text_line() elif atfield.ITextField.providedBy(field): widget = field.widget if isinstance(widget, RichWidget): value = get_rich_text(data) else: value = get_text_paragraph() elif atfield.IBooleanField.providedBy(field): if 'Folder' == obj.portal_type: value = random.choice((0, 0, 0, 0, 1)) else: value = random.randint(0, 1) and True or False else: continue field.set(obj, value) # subject subject = obj.getField('subject') if subject and data.get('subjects'): subjects = data.get('subjects', '').splitlines() or get_subjects() random.shuffle(subjects) subject.set(obj, subjects[:4]) if IATEvent.providedBy(obj): days = random.random() * 20 * (random.randint(-1, 1) or 1) value = DateTime() + days obj.setStartDate(value) obj.setEndDate(value + random.random() * 3) # Set Images generate_image = data.get('generate_images') or obj.portal_type == 'Image' if obj.getField('image') and generate_image: field = obj.getField('image') name = data.get('generate_images_service') params = data.get('generate_images_params') getter = component.getUtility(IFakeImageGetter, name=name) title = get_text_line() img_content = getter.get(params=params, text=title) if img_content: field.set(obj, img_content) log.info('[%s] got dummy image for %s' % (getter.name, '/'.join(obj.getPhysicalPath())))
def populate_archetype(obj, data): fields = obj.Schema().fields() for field in fields: name = field.__name__ if name in ['id']: continue if name == 'title': value = data['title'] elif shasattr(field, 'vocabulary') and \ IVocabulary.providedBy(field.vocabulary): vocab = field.vocabulary.getVocabularyDict(obj) value = vocab.keys()[random.randint(0, len(vocab.keys())-1)] elif atfield.IStringField.providedBy(field): validators = [v[0].name for v in field.validators] if 'isURL' in validators: value = 'http://en.wikipedia.com/wiki/Lorem_ipsum' elif 'isEmail' in validators: value = '*****@*****.**' else: value = get_text_line() elif atfield.ITextField.providedBy(field): widget = field.widget if isinstance(widget, RichWidget): value = get_rich_text(data) else: value = get_text_paragraph() elif atfield.IBooleanField.providedBy(field): value = random.randint(0, 1) and True or False else: continue field.set(obj, value) # subject subject = obj.getField('subject') if subject and data.get('subjects'): subjects = data.get('subjects', '').splitlines() or get_subjects() random.shuffle(subjects) subject.set(obj, subjects[:4]) if IATEvent.providedBy(obj): days = random.random()*20 * (random.randint(-1, 1) or 1) value = DateTime() + days obj.setStartDate(value) obj.setEndDate(value+random.random()*3) # Set Images generate_image = data.get('generate_images') or obj.portal_type == 'Image' if obj.getField('image') and generate_image: field = obj.getField('image') name = data.get('generate_images_service') params = data.get('generate_images_params') getter = component.getUtility(IFakeImageGetter, name=name) title = get_text_line() img_content = getter.get(params=params, text=title) if img_content: field.set(obj, img_content) log.info('[%s] got dummy image for %s' % (getter.name, '/'.join(obj.getPhysicalPath())))