def create(db, user): try: item = model.Restriction() item.title = request.forms.title.strip().capitalize() item.body = request.forms.body.strip() item.state = 'NEW' item.user = user item.user_name = request.forms.name.strip() item.user_city = request.forms.city.strip() item.voters.append(user) db.add(item) db.flush() if not user.admin: subject = config.restriction_created_email_subject body = template( 'mail_restriction_created', site_name=config.site_name, site_url=config.site_url, id=item.id, slug=slug(item.title) ) send_email(config.site_email, subject, body) return {'id': item.id, 'slug': slug(item.title)} except AssertionError: return HTTPError(400, 'Bad request')
def create(db, user): try: item = model.Restriction() item.title = request.forms.title.strip().capitalize() item.body = request.forms.body.strip() item.state = 'NEW' item.user = user item.user_name = request.forms.name.strip() item.user_city = request.forms.city.strip() item.voters.append(user) db.add(item) db.flush() if not user.admin: subject = config.restriction_created_email_subject body = template('mail_restriction_created', site_name=config.site_name, site_url=config.site_url, id=item.id, slug=slug(item.title)) send_email(config.site_email, subject, body) return {'id': item.id, 'slug': slug(item.title)} except AssertionError: return HTTPError(400, 'Bad request')
def reject(db, user, id): try: item = db.query(model.Restriction).filter_by(id=id).one() item.state = 'REJECTED' item.approver = user db.flush() # email user the restriction was rejected reason = request.forms.reason.strip() if reason: tpl = 'mail_restriction_rejected_reason' else: tpl = 'mail_restriction_rejected' subject = config.restriction_rejected_email_subject body = template( tpl, site_name=config.site_name, site_url=config.site_url, id=item.id, slug=slug(item.title), reason=reason ) send_email(item.user.email, subject, body) except NoResultFound: return HTTPError(404, 'Not found')
def make_res_type(self, data): print "clean res type" if not 'res_type' in self.data: return name = self.data["res_type"] data["res_type"] = ResourceType.objects.get_or_create( slug_name=slug(name), defaults={'name': name})[0].pk
def reject(db, user, id): try: item = db.query(model.Restriction).filter_by(id=id).one() item.state = 'REJECTED' item.approver = user db.flush() # email user the restriction was rejected reason = request.forms.reason.strip() if reason: tpl = 'mail_restriction_rejected_reason' else: tpl = 'mail_restriction_rejected' subject = config.restriction_rejected_email_subject body = template(tpl, site_name=config.site_name, site_url=config.site_url, id=item.id, slug=slug(item.title), reason=reason) send_email(item.user.email, subject, body) except NoResultFound: return HTTPError(404, 'Not found')
def post(self, id=None): if id: photo = Photo.gql("WHERE id = :1", id).get() else: photo = Photo(content_type="image/jpg") date_posted = utils.strptime_for_edit(self.request.get('date_posted')) photo.title = self.request.get('title') photo.id = get_photo_id(date_posted, self.request.get('slug')) photo.location = self.request.get('location') location_slug = utils.slug(photo.location) location = db.Query(PhotoLocation).filter("id = ", location_slug).get() if not location: location = PhotoLocation(id=location_slug, name=photo.location) location.put() photo.location_ref = location photo.categories = self.request.get('categories') photo.categories_ref = [] for category_name in photo.categories.split(","): category_name = category_name.strip() category_slug = utils.slug(category_name) category = db.Query(PhotoCategory).filter("id = ", category_slug).get() if not category: category = PhotoCategory(id=category_slug, name=category_name) category.put() photo.categories_ref.append(category.key()) photo.description = self.request.get('description') photo.date_posted = date_posted if self.request.get('file'): photo.file = db.Blob(self.request.get('file')) photo.thumbnail = images.resize(photo.file, 128, 128) photo.put() self.redirect(photo.get_url())
def get_or_create_from_name(self, entities_name, entity_class): print entities_name out = [] slug_entities = [slug(n) for n in entities_name] nb_created = 0 for i, se in enumerate(slug_entities): entity, created = entity_class.objects.get_or_create( slug_name=se, defaults={'name': entities_name[i]}) if created: nb_created += 1 out.append(entity.pk) print "{} {} created".format(nb_created, entity_class.__name__) return out
def approve(db, user, id): try: item = db.query(model.Restriction).filter_by(id=id).one() item.state = 'APPROVED' item.approver = user db.flush() # email user the restriction was approved subject = config.restriction_approved_email_subject body = template('mail_restriction_approved', site_name=config.site_name, site_url=config.site_url, id=item.id, slug=slug(item.title)) send_email(item.user.email, subject, body) except NoResultFound: return HTTPError(404, 'Not found')
def _track_cidades(self, db): infos = self._get_info_cidades() siglas = {} for info in infos: codigo_ibge_uf = info['codigo_ibge_uf'] sigla_uf = info['sigla_uf'] nome = info['nome'] if codigo_ibge_uf not in siglas: siglas[codigo_ibge_uf] = sigla_uf # a chave única de uma cidade não # pode ser só o nome, pois # existem cidades com mesmo nome # em estados diferentes info['sigla_uf_nome_cidade'] = slug('%s_%s' % (sigla_uf, nome)) db.insert_or_update_cidade(info) return siglas
def toDict(self, full=False, user=None): ret = {} ret['id'] = self.id ret['created'] = self.created ret['votes'] = len(self.voters) ret['title'] = self.title ret['body'] = self.body ret['user_name'] = self.user_name ret['user_city'] = self.user_city ret['state'] = self.state ret['slug'] = slug(self.title) if full: if self.approver: ret['approver'] = self.approver.toDict() else: ret['approver'] = None ret['modified'] = self.modified if user: ret['voted'] = user in self.voters return ret
def approve(db, user, id): try: item = db.query(model.Restriction).filter_by(id=id).one() item.state = 'APPROVED' item.approver = user db.flush() # email user the restriction was approved subject = config.restriction_approved_email_subject body = template( 'mail_restriction_approved', site_name=config.site_name, site_url=config.site_url, id=item.id, slug=slug(item.title) ) send_email(item.user.email, subject, body) except NoResultFound: return HTTPError(404, 'Not found')
def toDict(self, full=False, user=None): ret = {} ret['id'] = self.id ret['created'] = self.created ret['votes'] = self.vote_count.num if self.vote_count else 0 ret['title'] = self.title ret['state'] = self.state ret['slug'] = slug(self.title) if full: ret['body'] = self.body ret['user_name'] = self.user_name ret['user_city'] = self.user_city if user: if user.admin: if self.approver: ret['approver'] = self.approver.toDict() else: ret['approver'] = None ret['modified'] = self.modified return ret
def key_func(_uf, _cidade): return u'{}_{}'.format(slug(_uf), slug(_cidade))
def save(self, **kwargs): self.slug_name = slug(self.name) super(ResourceType, self).save(**kwargs)
def save(self, **kwargs): self.slug_name = slug(self.name) super(Tag, self).save(**kwargs)