Esempio n. 1
0
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')
Esempio n. 2
0
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')
Esempio n. 3
0
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')
Esempio n. 4
0
 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
Esempio n. 5
0
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')
Esempio n. 6
0
File: admin.py Progetto: ibz/nuages
    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())
Esempio n. 7
0
File: admin.py Progetto: ibz/nuages
    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())
Esempio n. 8
0
    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
Esempio n. 9
0
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')
Esempio n. 10
0
    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
Esempio n. 11
0
 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
Esempio n. 12
0
 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
Esempio n. 13
0
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')
Esempio n. 14
0
    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
Esempio n. 15
0
 def key_func(_uf, _cidade):
     return u'{}_{}'.format(slug(_uf), slug(_cidade))
Esempio n. 16
0
 def key_func(_uf, _cidade):
     return u'{}_{}'.format(slug(_uf), slug(_cidade))
Esempio n. 17
0
 def save(self, **kwargs):
     self.slug_name = slug(self.name)
     super(ResourceType, self).save(**kwargs)
Esempio n. 18
0
 def save(self, **kwargs):
     self.slug_name = slug(self.name)
     super(Tag, self).save(**kwargs)