def _app_to_obj(app): result = obj_to_dict( app, ('fullname', 'description', 'icon_url', 'page_url', 'downloads', 'stars_percentage', 'votes', 'citation')) result['tags'] = [tag.fullname for tag in app.tags.all()] result['releases'] = iter_to_dict( app.releases, ('version', 'created_iso', 'release_download_url', 'works_with', 'hexchecksum', 'notes')) return result
def _app_rate(app, user, post): rating_n = post.get('rating') try: rating_n = int(rating_n) if not (0 <= rating_n <= 5): raise ValueError() except ValueError: raise ValueError('rating is "%s" but must be an integer between 0 and 5' % rating_n) app.votes += 1 app.stars += rating_n app.save() return obj_to_dict(app, ('votes', 'stars_percentage'))
def _app_to_obj(app): result = obj_to_dict(app, ('fullname', 'description', 'icon_url', 'page_url', 'downloads', 'stars_percentage', 'votes', 'citation')) result['tags'] = [tag.fullname for tag in app.tags.all()] result['releases'] = iter_to_dict(app.releases, ('version', 'created_iso', 'release_download_url', 'works_with', 'hexchecksum', 'notes')) return result