def get_generator_info(generator_id=None, record=None, user=None): gen = record or get_generator(generator_id, user) if not gen: return None fields = ['version', 'title', 'description'] values = getvalues(gen, fields) values['username'] = user.username if user else gen.user.username values['generator_id'] = make_generator_id(gen, values['username']) values['package_id'] = make_package_id(gen.package, values['username']) values['num_likes'] = gen.tag_set.filter(name='.fav').count() sub_gens, num_sub_gens = get_relatives(gen, 'sub_gen', 50, user) values['sub_gens'] = sub_gens values['num_sub_gens'] = num_sub_gens parents, num_parents = get_relatives(gen, 'parent', 50, user) values['parents'] = parents values['num_parents'] = num_parents categories, num_categories = get_relatives(gen, 'category', 50, user) values['categories'] = categories values['num_categories'] = num_categories values['num_downloads'] = gen.package.num_downloaded values['date_uploaded'] = gen.package.date_uploaded images = gen.thumbnail_set.values('fname') values['images'] = [str(i['fname']) for i in images] return values
def get_user_info(username=None, record=None): user_record = record or User.objects.select_related().get(username=username) if not user_record: return None fields = ['username', 'first_name', 'last_name', 'date_joined', 'last_login'] values = getvalues(user_record, fields) values['num_generators'] = user_record.generator_set.count() values['num_packages'] = user_record.package_set.count() favs = Tag.objects.filter(user=user_record, name='.fav') values['favs'] = [get_generator_info(record=f.generator) for f in favs] return values
def get_package_info(package_id=None, record=None, user=None): pack_record = record or get_package(package_id, user) if not pack_record: return None fields = ['version', 'date_uploaded', 'title', 'description'] values = getvalues(pack_record, fields) values['username'] = user.username if user else pack_record.user.username values['package_id'] = make_package_id(pack_record, values['username']) gens = pack_record.generator_set.all() values['num_generators'] = gens.count() values['generator_ids'] = [make_generator_id(g, values['username']) for g in gens[:50]] values['gens'] = [get_generator_info(record=g) for g in gens[:50]] return values