def get_dummy_dexterity_value(obj, widget, data): value = None field = widget.field catalog = getToolByName(obj, 'portal_catalog') if interfaces.IChoice.providedBy(field): if shasattr(field, 'vocabulary') and field.vocabulary: vocabulary = field.vocabulary elif shasattr(field, 'vocabularyName') and field.vocabularyName: factory = component.getUtility( interfaces.IVocabularyFactory, field.vocabularyName) vocabulary = factory(obj) else: return if interfaces.IContextSourceBinder.providedBy(vocabulary): criteria = vocabulary.selectable_filter.criteria results = catalog(**criteria) if not len(results): return value = results[random.randint(0, len(results)-1)].getObject() else: if interfaces.ITreeVocabulary.providedBy(vocabulary) or \ not len(vocabulary): # Can't yet deal with tree vocabs return index = random.randint(0, len(vocabulary)-1) value = vocabulary._terms[index].value elif interfaces.IBool.providedBy(field): value = random.randint(0, 1) and True or False elif interfaces.ITextLine.providedBy(field): if HAS_USERANDGROUPSELECTIONWIDGET and \ IUserAndGroupSelectionWidget.providedBy(widget): mtool = getToolByName(obj, 'portal_membership') mids = mtool.listMemberIds() value = mids[random.randint(0, len(mids)-1 or 1)] else: length = getattr(field, 'max_length', None) value = unicode(get_text_line()[:length]) elif interfaces.IText.providedBy(field): if IWysiwygWidget.providedBy(widget): value = unicode(get_rich_text(data)) else: value = unicode(get_text_paragraph()) elif interfaces.IDatetime.providedBy(field): days = random.random()*10 * (random.randint(-1, 1) or 1) value = datetime.datetime.now() + datetime.timedelta(days, 0) elif interfaces.IDate.providedBy(field): days = random.random()*10 * (random.randint(-1, 1) or 1) value = datetime.datetime.now() + datetime.timedelta(days, 0) return value
def populate_dexterity_type(self, obj): request = self.request view = getMultiAdapter((obj, request), name="edit") view.update() view.form_instance.render() fields = view.form_instance.fields._data_values for i in range(0, len(fields)): field = fields[i].field name = field.__name__ if name == 'title': continue if interfaces.IChoice.providedBy(field): if shasattr(field, 'vocabulary') and field.vocabulary: vocabulary = field.vocabulary elif shasattr(field, 'vocabularyName') and field.vocabularyName: factory = getUtility(interfaces.IVocabularyFactory, field.vocabularyName) vocabulary = factory(obj) else: continue index = random.randint(0, len(vocabulary) - 1) value = vocabulary._terms[index].value elif interfaces.ITextLine.providedBy(field): value = self.get_text_line() elif interfaces.IText.providedBy(field): widget = view.form_instance.widgets._data_values[i] if IWysiwygWidget.providedBy(widget): value = self.get_rich_text() else: value = self.get_text_paragraph() elif interfaces.IDatetime.providedBy(field): days = random.random() * 10 * (random.randint(-1, 1) or 1) value = datetime.datetime.now() + datetime.timedelta(days, 0) elif interfaces.IDate.providedBy(field): days = random.random() * 10 * (random.randint(-1, 1) or 1) value = datetime.datetime.now() + datetime.timedelta(days, 0) else: continue field.set(obj, value)
def populate_dexterity_type(self, obj): request = self.request view = getMultiAdapter((obj, request), name="edit") view.update() view.form_instance.render() fields = view.form_instance.fields._data_values for i in range(0, len(fields)): field = fields[i].field name = field.__name__ if name == 'title': continue if interfaces.IChoice.providedBy(field): if shasattr(field, 'vocabulary') and field.vocabulary: vocabulary = field.vocabulary elif shasattr(field, 'vocabularyName') and field.vocabularyName: factory = getUtility( interfaces.IVocabularyFactory, field.vocabularyName) vocabulary = factory(obj) else: continue index = random.randint(0, len(vocabulary)-1) value = vocabulary._terms[index].value elif interfaces.ITextLine.providedBy(field): value = self.get_text_line() elif interfaces.IText.providedBy(field): widget = view.form_instance.widgets._data_values[i] if IWysiwygWidget.providedBy(widget): value = self.get_rich_text() else: value = self.get_text_paragraph() elif interfaces.IDatetime.providedBy(field): days = random.random()*10 * (random.randint(-1,1) or 1) value = datetime.datetime.now() + datetime.timedelta(days,0) elif interfaces.IDate.providedBy(field): days = random.random()*10 * (random.randint(-1,1) or 1) value = datetime.datetime.now() + datetime.timedelta(days,0) else: continue field.set(obj, value)
def get_dummy_dexterity_value(obj, widget, data): value = None field = widget.field if interfaces.IChoice.providedBy(field): value = get_value_for_choice(obj, field) elif interfaces.ISet.providedBy(field) and \ interfaces.IChoice.providedBy(field.value_type): value = get_value_for_choice(obj, field.value_type) elif interfaces.IBool.providedBy(field): value = random.randint(0, 1) and True or False elif interfaces.ITextLine.providedBy(field): if HAS_USERANDGROUPSELECTIONWIDGET and \ IUserAndGroupSelectionWidget.providedBy(widget): mtool = api.portal.get_tool('portal_membership') mids = mtool.listMemberIds() value = mids[random.randint(0, len(mids) - 1 or 1)] else: length = getattr(field, 'max_length', None) value = unicode(get_text_line()[:length]) elif interfaces.IText.providedBy(field): if IWysiwygWidget.providedBy(widget): value = unicode(get_rich_text(data)) else: value = unicode(get_text_paragraph()) elif HAS_PLONE_APP_TEXTFIELD and IRichText.providedBy(field): value = unicode(get_rich_text(data)) elif interfaces.IDatetime.providedBy(field): days = random.random() * 10 * (random.randint(-1, 1) or 1) value = datetime.datetime.now() + datetime.timedelta(days, 0) elif interfaces.IDate.providedBy(field): days = random.random() * 10 * (random.randint(-1, 1) or 1) value = datetime.datetime.now() + datetime.timedelta(days, 0) return value
def get_dummy_dexterity_value(obj, widget, data): value = None field = widget.field if interfaces.IChoice.providedBy(field): value = get_value_for_choice(obj, field) elif interfaces.ISet.providedBy(field) and \ interfaces.IChoice.providedBy(field.value_type): value = get_value_for_choice(obj, field.value_type) elif interfaces.IBool.providedBy(field): value = random.randint(0, 1) and True or False elif interfaces.ITextLine.providedBy(field): if HAS_USERANDGROUPSELECTIONWIDGET and \ IUserAndGroupSelectionWidget.providedBy(widget): mtool = api.portal.get_tool('portal_membership') mids = mtool.listMemberIds() value = mids[random.randint(0, len(mids)-1 or 1)] else: length = getattr(field, 'max_length', None) value = unicode(get_text_line()[:length]) elif interfaces.IText.providedBy(field): if IWysiwygWidget.providedBy(widget): value = unicode(get_rich_text(data)) else: value = unicode(get_text_paragraph()) elif HAS_PLONE_APP_TEXTFIELD and IRichText.providedBy(field): value = unicode(get_rich_text(data)) elif interfaces.IDatetime.providedBy(field): days = random.random()*10 * (random.randint(-1, 1) or 1) value = datetime.datetime.now() + datetime.timedelta(days, 0) elif interfaces.IDate.providedBy(field): days = random.random()*10 * (random.randint(-1, 1) or 1) value = datetime.datetime.now() + datetime.timedelta(days, 0) return value