def get(self, **kwargs): if 'key' in kwargs: kwargs['title'] = 'Editando Propiedad' kwargs['form'] = PropertyForm(obj=self.mine_or_404(kwargs['key'])) else: if len(Property.all().filter('realestate = ',db.Key(self.get_realestate_key())).fetch(10))>=1: self.set_error(u'Comuníquese con DirectoDueño si desea publicar más de una propiedad; por correo ([email protected]) o a través del <a href="%s">panel de ayuda</a>.' % self.uri_for('backend/help')) return self.redirect_to('property/list') kwargs['title'] = 'Nueva Propiedad' kwargs['form'] = self.form return self.show_property_form(**kwargs)
def get(self, **kwargs): re = get_or_404(kwargs['key']) blobs = [] imgs = [] props = [] for img in ImageFile.all().filter('realestate', re.key()): blobs.append(img.file.key()) imgs.append(img.key()) blobstore.delete(blobs) db.delete(imgs) props = [] for prop in Property.all().filter('realestate', re.key()): props.append(prop.key()) db.delete(props) pis = [] for pi in PropertyIndex.all().filter('realestate', re.key()): pis.append(pi.key()) db.delete(pis) invs = [] pays = [] for inv in Invoice.all().filter('realestate', re.key()): invs.append(inv) if inv.payment: pays.append(inv.payment.key()) db.delete(invs) db.delete(pays) usrs = [] for usr in User.all().filter('realestate', re.key()): usrs.append(usr) db.delete(usrs) mRealEstateFriendship = [] for fr in RealEstateFriendship.all().filter('realestates', str(re.key())): mRealEstateFriendship.append(fr) db.delete(mRealEstateFriendship) re.delete() self.response.write('borrado %s' % kwargs['key'])
def getto(self, realestate, **kwargs): # Ponemos la pantalla de disabled si esta en NO_PAYMENT if realestate.status == RealEstate._NO_PAYMENT or realestate.plan.allow_website == 0: return self.render_response('realestate/disabled.html', realestate=realestate) kwargs['realestate'] = realestate kwargs['menu_item'] = 'index' kwargs['form'] = self.form kwargs['properties'] = Property.all().filter( ' location_geocells = ', RealEstate.get_realestate_sharing_key( None, realestate=realestate)).filter( ' status = ', Property._PUBLISHED).fetch( get_props_at_home(realestate.get_web_theme())) return self.render_response('realestate/index.html', **kwargs)
def post(self, **kwargs): self.request.charset = 'utf-8' editing = 'key' in self.request.POST and len(self.request.POST['key']) if not editing: if len(Property.all().filter('realestate = ',db.Key(self.get_realestate_key())).fetch(10))>=1: self.set_error(u'Comuníquese con DirectoDueño si desea publicar más de una propiedad.') return self.redirect_to('property/list') if not self.form.validate(): kwargs['title'] = 'Editando Propiedad' if editing else 'Nueva Propiedad' kwargs['form'] = self.form kwargs['key'] = self.request.POST['key'] if editing else None kwargs['flash'] = {'message':'Verifique los datos ingresados', 'type':'error'} return self.show_property_form(**kwargs) # Actualizo o creo el model property = self.mine_or_404(self.request.POST['key']) if editing else Property.new(db.Key(self.get_realestate_key())) self.form.update_object(property) # Updateamos y mandamos a rebuild el indice si es necesario # Solo lo hacemos si se require y la propiedad esta publicada # Si se modifica una propiedad BORRADA o DESACTIVADA no se toca el indice por que no existe def savetxn(): result = property.save(build_index=True) if editing else property.put() if result != 'nones' and property.status == Property._PUBLISHED: taskqueue.add(url=self.url_for('property/update_index'), params={'key': str(property.key()),'action':result}, transactional=True) db.run_in_transaction(savetxn) if self.request.POST['goto'] == 'go': return self.redirect_to('property/images', key=str(property.key())) self.set_ok('La propiedad fue %s ' % ('modificada con exito.' if editing else u'creada con exito, sera visible en el mapa dentro de la próxima hora.') ) return self.redirect_to('property/listpage', page=1)