def get_item_form(self, stream, env, item, initial, draft=None): if item.state not in (item.ABSENT, item.DELETED): return PublishItemHandler.get_item_form( self, stream, env, item, initial, draft) # XXX this method looks hacky # Get existing language version and fill the form with object reflection # to current language model for lang in item.models.langs: # XXX item.models is not an interface if lang == item.models.lang: continue source_item = item._item_version('admin', lang) if source_item and \ source_item.state not in (item.ABSENT, item.DELETED): break else: # The item has been deleted on all language versions, creation is # not allowed raise HTTPNotFound # make object reflection, do not add it to db #fake_item = item.__class__() ## XXX do not replicate text fields, creation time, etc #replicate_attributes(source_item, fake_item) #form = PublishItemHandler.get_item_form( # self, stream, env, fake_item, initial, draft) # XXX hack! #form.item = item # hack do get initial value for form from source item source_form = PublishItemHandler.get_item_form( self, stream, env, source_item, initial, draft) form = PublishItemHandler.get_item_form( self, stream, env, item, initial, draft) form.accept(source_form.raw_data) form.errors = {} for key in form.raw_data.keys(): field = form.get_field(key) if self.drop_field_on_i18n(field, key): field.set_raw_value(form.raw_data, field.from_python(field.get_initial())) return form
def get_item_form(self, stream, env, item, initial, draft=None): if item.state not in (item.ABSENT, item.DELETED): return PublishItemHandler.get_item_form( self, stream, env, item, initial, draft) # XXX this method looks hacky # Get existing language version and fill the form with object reflection # to current language model for lang in item.models.langs: # XXX item.models is not an interface if lang == item.models.lang: continue source_item = item._item_version('admin', lang) if source_item and \ source_item.state not in (item.ABSENT, item.DELETED): break else: # The item has been deleted on all language versions, creation is # not allowed raise HTTPNotFound # make object reflection, do not add it to db #fake_item = item.__class__() ## XXX do not replicate text fields, creation time, etc #replicate_attributes(source_item, fake_item) #form = PublishItemHandler.get_item_form( # self, stream, env, fake_item, initial, draft) # XXX hack! #form.item = item # hack do get initial value for form from source item source_form = PublishItemHandler.get_item_form( self, stream, env, source_item, initial, draft) form = PublishItemHandler.get_item_form( self, stream, env, item, initial, draft) form.accept(source_form.raw_data) form.errors = {} return form
def process_item_template_data(self, env, td): item = td['item'] if item.state in (item.ABSENT, item.DELETED): td['title'] = u'Создание языковой версии объекта' return PublishItemHandler.process_item_template_data(self, env, td)
def process_item_template_data(self, env, td): item = td['item'] if item.state in (item.ABSENT, item.DELETED): td['title'] = u'Создание языковой версии объекта' return PublishItemHandler.process_item_template_data(self, env, td)
def process_item_template_data(self, env, td): item = td["item"] if item.state in (item.ABSENT, item.DELETED): td["title"] = u"Создание языковой версии объекта" return PublishItemHandler.process_item_template_data(self, env, td)