class AdminObjectAdd(OutputClass): url_handler = '/admin/objects/add/?' def get(self): self.checkSession(self.request.headers.get('Cookie')) self.insertMenu() if self.Session['access'] > 4: self.insertTemplate("tpl_object_add.html", { 'editor' : self.insertFckEdit("descr"), 'button' : 'Добавить', 'caption': 'Добавление', 'isadmin' : True if self.Session['access'] > 7 else False, }) else: self.insertContent("У вас нет прав на выполнение этого действия") self.drawPage() def post(self): self.checkSession(self.request.headers.get('Cookie')) if self.Session['access'] > 4: if not self.request.get('name'): self.showMessage("Вы не указали имя объекта") return id = self.request.get('id') try: self.object = DBGalleryObject.get_by_id(int(id)) self.answer = "objectedittrue" except: self.object = DBGalleryObject() self.answer = "objectaddtrue" if self.request.get("login"): query = db.GqlQuery("SELECT * FROM DBUser WHERE login = :login", login = self.request.get("login")) if query.count() == 0: self.object.userid=self.Session['userid'] for q in query: self.object.userid = int(q.key().id()) else: if self.request.get("userid"): self.object.userid = int(self.request.get("userid")) else: self.object.userid = self.Session['userid'] self.object.name = self.request.get('name') self.object.description = self.request.get('descr') self.object.smalldescription = self.request.get('smalldescription') data = self.request.get('pic') if data: try: image = images.resize(data, 300, 300) self.object.image = db.Blob(image) except: self.showMessage("Картинка объекта не должна быть размером больше, чем 1 Мб.") return self.object.put() self.redirect('/msgbox/' + self.answer) else: self.insertContent("У вас нет прав на выполнение этого действия") self.drawPage()
def post(self): self.checkSession(self.request.headers.get('Cookie')) if self.Session['access'] > 4: if not self.request.get('name'): self.showMessage("Вы не указали имя объекта") return id = self.request.get('id') try: self.object = DBGalleryObject.get_by_id(int(id)) self.answer = "objectedittrue" except: self.object = DBGalleryObject() self.answer = "objectaddtrue" if self.request.get("login"): query = db.GqlQuery( "SELECT * FROM DBUser WHERE login = :login", login=self.request.get("login")) if query.count() == 0: self.object.userid = self.Session['userid'] for q in query: self.object.userid = int(q.key().id()) else: if self.request.get("userid"): self.object.userid = int(self.request.get("userid")) else: self.object.userid = self.Session['userid'] self.object.name = self.request.get('name') self.object.description = self.request.get('descr') self.object.smalldescription = self.request.get('smalldescription') data = self.request.get('pic') if data: try: image = images.resize(data, 300, 300) self.object.image = db.Blob(image) except: self.showMessage( "Картинка объекта не должна быть размером больше, чем 1 Мб." ) return self.object.put() self.redirect('/msgbox/' + self.answer) else: self.insertContent("У вас нет прав на выполнение этого действия") self.drawPage()
def get(self): self.checkSession(self.request.headers.get('Cookie'), False) self.insertMenu() uri = self.request.uri.split('/')[-1] output = self.__messages[uri] if uri == "objectaddtrue": object = DBGalleryObject.gql("order by date desc limit 0,1") output += """<br><a href="/admin/album/add/""" + str(object[0].key().id()) + """\">Добавить фотоальбом к этому объекту</a>""" output += """<br><a href="/admin/objects/add/">Добавить еще объект</a>""" output += """<br><a href="/admin/objects/">Перейти в управление объектами</a>""" self.insertTemplate('tpl_messagebox.html', { 'content' : output } ) self.drawPage()
def get(self): self.checkSession(self.request.headers.get('Cookie'), False) self.insertMenu() uri = self.request.uri.split('/')[-1] output = self.__messages[uri] if uri == "objectaddtrue": object = DBGalleryObject.gql("order by date desc limit 0,1") output += """<br><a href="/admin/album/add/""" + str(object[0].key( ).id()) + """\">Добавить фотоальбом к этому объекту</a>""" output += """<br><a href="/admin/objects/add/">Добавить еще объект</a>""" output += """<br><a href="/admin/objects/">Перейти в управление объектами</a>""" self.insertTemplate('tpl_messagebox.html', {'content': output}) self.drawPage()
def post(self): self.checkSession(self.request.headers.get('Cookie')) if self.Session['access'] > 4: if not self.request.get('name'): self.showMessage("Вы не указали имя объекта") return id = self.request.get('id') try: self.object = DBGalleryObject.get_by_id(int(id)) self.answer = "objectedittrue" except: self.object = DBGalleryObject() self.answer = "objectaddtrue" if self.request.get("login"): query = db.GqlQuery("SELECT * FROM DBUser WHERE login = :login", login = self.request.get("login")) if query.count() == 0: self.object.userid=self.Session['userid'] for q in query: self.object.userid = int(q.key().id()) else: if self.request.get("userid"): self.object.userid = int(self.request.get("userid")) else: self.object.userid = self.Session['userid'] self.object.name = self.request.get('name') self.object.description = self.request.get('descr') self.object.smalldescription = self.request.get('smalldescription') data = self.request.get('pic') if data: try: image = images.resize(data, 300, 300) self.object.image = db.Blob(image) except: self.showMessage("Картинка объекта не должна быть размером больше, чем 1 Мб.") return self.object.put() self.redirect('/msgbox/' + self.answer) else: self.insertContent("У вас нет прав на выполнение этого действия") self.drawPage()
def get(self): if self.checkSession(self.request.headers.get('Cookie'), False): self.insertMenu() objects = DBGalleryObject.gql("order by date desc limit 50") #objects.filter("userid =", self.Session['userid']) self.insertContent("<div style='padding: 10px; width: 100%;'>" """<div>Объекты:</div>""") for object in objects: self.insertContent('<div style="padding: 2 2 2 2; float: left;"><div style="text-align: center; padding-bottom: 2px;"></div><div style="background-opacity: 0.7; padding: 5px; float: left; border-style: solid; border-width: 1px; width: 128px; height: 128px;"><a href="/objects/' + str(object.key().id()) + '"><img alt="'+object.name.encode("utf8")+'" src="/picture/128/crop/0/' + str(object.key().id()) + '"></img></a></div></div>') self.insertContent("</div>") self.drawPage("Последние поступления")
def get(self): id = int(self.request.uri.split('/')[-1]) object = DBGalleryObject.get_by_id(id) if not super(DelObject, self).get(object.userid): return albums = DBAlbum.gql("WHERE objectid = :objectid", objectid = id) for album in albums: photos = DBPhoto.gql("WHERE albumid = :albumid", albumid = int(album.key().id())) for photo in photos: try: tags = DBPhotoTags.gql("where imageid = :imageid", imageid = int(photo.key().id())) db.delete(tags) except: pass db.delete(photos) db.delete(albums) db.delete(object) self.showMessage("Объект успешно удален")
def post(self): if super(AdminAlbumAdd, self).get(): self.response.headers['Content-Type'] = "text/html" if int(self.request.get("isphoto"))==1: try: photo = DBPhoto() photo.albumid = int(self.request.get("albumid")) photo.tags = "" secret = str(hashlib.md5(str(random.random())).hexdigest()) photo.comment = "secret" + secret image = images.Image(self.request.get('pic')) if (image.width < 400 and image.height < 400) or image.width > 1024 or image.height > 768: self.response.out.write("size") return image_resized = images.Image(images.resize(image._image_data, width=130, output_encoding = images.JPEG)) if image.height >= image.width else images.Image(images.resize(image._image_data, height=130, output_encoding = images.JPEG)) image_cropped = images.crop(image_resized._image_data, 0.0, 0.0, float(130)/float(image_resized.width), 1.0, images.JPEG) if image_resized.height == 130 else images.crop(image_resized._image_data, 0.0, 0.0, 1.0, float(130)/float(image_resized.height), images.JPEG) photo.put() photos = DBPhoto.gql("where comment = :cmt", cmt = "secret" + secret) id = str(photos[0].key().id()) edphoto = DBPhoto.get_by_id(int(id)) edphoto.comment = "none" edphoto.image_small = db.Blob(image_cropped) edphoto.image_big = db.Blob(image._image_data) edphoto.put() self.response.out.write(id) except: self.response.out.write("size") else: if int(self.request.get("deletephoto"))==1: try: photo = DBPhoto.get_by_id(int(self.request.get("photoid"))) db.delete(photo) self.response.out.write("deleted") except: self.response.out.write("not deleted") else: try: album = DBAlbum.get_by_id(int(self.request.get("albumid"))) album.objectid = int(self.request.get("objectid")) object = DBGalleryObject.get_by_id(int(self.request.get("objectid"))) album.userid = int(object.userid) album.name = self.request.get("name") album.put() self.response.out.write("added") except: self.response.out.write("not added")
def get(self): if self.checkSession(self.request.headers.get('Cookie'), False): self.insertMenu() objects = DBGalleryObject.gql("order by date desc limit 50") #objects.filter("userid =", self.Session['userid']) self.insertContent("<div style='padding: 10px; width: 100%;'>" """<div>Объекты:</div>""") for object in objects: self.insertContent( '<div style="padding: 2 2 2 2; float: left;"><div style="text-align: center; padding-bottom: 2px;"></div><div style="background-opacity: 0.7; padding: 5px; float: left; border-style: solid; border-width: 1px; width: 128px; height: 128px;"><a href="/objects/' + str(object.key().id()) + '"><img alt="' + object.name.encode("utf8") + '" src="/picture/128/crop/0/' + str(object.key().id()) + '"></img></a></div></div>') self.insertContent("</div>") self.drawPage("Последние поступления")
def get_top(self): # print 1 arhs = [] data = memcache.get("arch_top") if data is not None: arhs = pickle.loads(data) # print 2 else: data = memcache.get("sorted_objects_v2") # print 3 if not data: return arhs o_list = pickle.loads(data)[0:25] objects = [] for object in o_list: objects.append(DBGalleryObject.get_by_id(object)) rating = {} u = DBUser() obj_k = 100.0 for object in objects: try: rating[int(object.userid)] += 1.0*obj_k except: rating[int(object.userid)] = 1.0*obj_k obj_k /= 1.1 rate = sorted(rating.items(), key = lambda(k,v): (v,k), reverse=True) for entity in rate[:25]: # lets check if user has a photo if not DBAvatara().get_by_userid(entity[0]): continue slovar = {'id': entity[0], 'login' : str(u.get_login_by_id(entity[0]))} arhs.append( slovar ) memcache.add("arch_top", pickle.dumps(arhs), 3600) return arhs
def get(self): if not super(FavoritesList, self).get(): self.showMessage( "У вас недостаточно прав для выполнения этого действия") return """ получаем type """ self.insertMenu() user_id = self.Session['userid'] favs = DBFavorites.gql("where userid = :uid", uid=user_id) favorites = [] fav_objects = [] for fav in favs: if fav.type == 1: obj = DBGalleryObject.get_by_id(int(fav.entityid)) fav_objects.append({ 'type_cap': "объекты", 'type_val': 0, 'type_str': 'objects', 'id': fav.entityid, 'name': obj.name.encode("utf-8"), }) elif fav.type == 2: obj = DBAlbum.get_by_id(int(fav.entityid)) fav_objects.append({ 'type_cap': "альбомы", # 'type_val' : -1, 'type_str': 'album', 'id': fav.entityid, 'name': obj.name.encode("utf-8"), }) favorites.append(fav_objects) self.insertTemplate("tpl_favorites_list.html", {'favorites': favorites}) self.drawPage("Список избранного")
def get(self): self.checkSession(self.request.headers.get('Cookie')) if self.Session['access'] > 4: self.insertMenu() id = int(self.request.uri.split('/')[-1]) object = DBGalleryObject.get_by_id(id) self.insertContent( """<div style="padding: 10px;">Связанные фотоальбомы:""") albums = db.Query(DBAlbum) albums.filter("objectid =", id) for album in albums: self.insertContent("""<li><a href='/album/""" + str(album.key().id()) + """'>""" + album.name.encode("utf8") + """</a></li>""") self.insertContent( """<div class="form"><a href="/admin/album/add/""" + str(id) + """\">Добавить альбом</a></div>""") self.insertTemplate( "tpl_object_add.html", { 'editor': self.insertFckEdit("descr", object.description.encode("utf8"), ToolbarSet="Admin"), 'name': object.name.encode("utf8"), 'button': 'Изменить', 'caption': 'Изменение', 'id': str(id), 'userid': str(object.userid) }) else: self.insertContent("У вас нет прав на выполнение этого действия") self.drawPage()
def get(self): self.checkSession(self.request.headers.get('Cookie')) if self.Session['access'] > 4: self.insertMenu() id = int(self.request.uri.split('/')[-1]) object = DBGalleryObject.get_by_id(id) self.insertContent("""<div style="padding: 10px;">Связанные фотоальбомы:""") albums = db.Query(DBAlbum) albums.filter("objectid =", id) for album in albums: self.insertContent("""<li><a href='/album/""" + str(album.key().id()) + """'>""" + album.name.encode("utf8") + """</a></li>""") self.insertContent("""<div class="form"><a href="/admin/album/add/""" + str(id) + """\">Добавить альбом</a></div>""") self.insertTemplate("tpl_object_add.html", { 'editor' : self.insertFckEdit("descr", object.description.encode("utf8"), ToolbarSet = "Admin"), 'name' : object.name.encode("utf8"), 'button' : 'Изменить', 'caption' : 'Изменение', 'id' : str(id), 'userid' : str(object.userid) }) else: self.insertContent("У вас нет прав на выполнение этого действия") self.drawPage()
def get(self): if not super(FavoritesList, self).get(): self.showMessage("У вас недостаточно прав для выполнения этого действия") return """ получаем type """ self.insertMenu() user_id = self.Session['userid'] favs = DBFavorites.gql("where userid = :uid", uid = user_id) favorites = [] fav_objects = [] for fav in favs: if fav.type == 1: obj = DBGalleryObject.get_by_id(int(fav.entityid)) fav_objects.append({ 'type_cap' : "объекты", 'type_val' : 0, 'type_str' : 'objects', 'id' : fav.entityid, 'name' : obj.name.encode("utf-8"), }) elif fav.type == 2: obj = DBAlbum.get_by_id(int(fav.entityid)) fav_objects.append({ 'type_cap' : "альбомы", # 'type_val' : -1, 'type_str' : 'album', 'id' : fav.entityid, 'name' : obj.name.encode("utf-8"), }) favorites.append(fav_objects) self.insertTemplate("tpl_favorites_list.html", { 'favorites' : favorites }) self.drawPage("Список избранного")
class AdminObjectAdd(OutputClass): url_handler = '/admin/objects/add/?' def get(self): self.checkSession(self.request.headers.get('Cookie')) self.insertMenu() if self.Session['access'] > 4: self.insertTemplate( "tpl_object_add.html", { 'editor': self.insertFckEdit("descr"), 'button': 'Добавить', 'caption': 'Добавление', 'isadmin': True if self.Session['access'] > 7 else False, }) else: self.insertContent("У вас нет прав на выполнение этого действия") self.drawPage() def post(self): self.checkSession(self.request.headers.get('Cookie')) if self.Session['access'] > 4: if not self.request.get('name'): self.showMessage("Вы не указали имя объекта") return id = self.request.get('id') try: self.object = DBGalleryObject.get_by_id(int(id)) self.answer = "objectedittrue" except: self.object = DBGalleryObject() self.answer = "objectaddtrue" if self.request.get("login"): query = db.GqlQuery( "SELECT * FROM DBUser WHERE login = :login", login=self.request.get("login")) if query.count() == 0: self.object.userid = self.Session['userid'] for q in query: self.object.userid = int(q.key().id()) else: if self.request.get("userid"): self.object.userid = int(self.request.get("userid")) else: self.object.userid = self.Session['userid'] self.object.name = self.request.get('name') self.object.description = self.request.get('descr') self.object.smalldescription = self.request.get('smalldescription') data = self.request.get('pic') if data: try: image = images.resize(data, 300, 300) self.object.image = db.Blob(image) except: self.showMessage( "Картинка объекта не должна быть размером больше, чем 1 Мб." ) return self.object.put() self.redirect('/msgbox/' + self.answer) else: self.insertContent("У вас нет прав на выполнение этого действия") self.drawPage()
def get(self): if self.checkSession(self.request.headers.get('Cookie'), False): self.insertMenu() id = int(self.request.uri.split('/')[-1]) object = DBGalleryObject.get_by_id(id) """ count rating """ votes = DBGalleryObjectRate.gql("where object = :o_key", o_key = id) rating = 0 for vote in votes: if vote.is_nice: rating += 1 else: rating -= 1 if rating <0: rating = 0 can_vote = DBGalleryObjectRate().still_can_vote(self.Session['userid'], id) obj = DBGalleryObjectRate.gql("where object = :o_key and voter = :userid", o_key = id, userid = self.Session['userid']) my_vote = bool(obj[0].is_nice) if not can_vote else False user = DBUser.get_by_id(int(object.userid)) albums = db.Query(DBAlbum) albums.filter("objectid =", id) albumhtml = "" for album in albums: albumhtml += """ <div class="main"> <div style="width: 100%; float: left;"> <div style="float: left;"><img src="/images/border_left_up.png" /></div> <div style="float: right;"><img src="/images/border_right_up.png" /></div> </div> <div style="padding-left: 20px; margin-right: 20px; font-size: 18px;">Альбом <a href=\"/album/""" + str(album.key().id()) + """\">\"""" + album.name.encode("utf8") + """\"</a></div> <div style="padding-left: 20px; padding-top: 10px;"> <a href=\"/album/""" + str(album.key().id()) + """\">Нажмите, чтобы посмотреть весь альбом</a> </div> <div style="padding-left: 20px; margin-right: 20px; padding-top: 10px;" class="triggers"> """ photos = DBPhoto.gql("where albumid = :albumid limit 0,6", albumid = int(album.key().id())) photohtml = "" for photo in photos: photohtml += """<div style="float: left; width: 136px; margin-right: 10px;"><a href="/picture/watermark/4/""" + str(photo.key().id()) + """\"><img src="/picture/3/""" + str(photo.key().id()) + """\" /></a></div>""" albumhtml += photohtml + """ <div style="clear: both; margin: 20px 20px 0px 0px; padding-top: 20px;">Комментариев к альбому: """ + str(album.comments_count if album.comments_count else 0) + """</div> </div> <div style="width: 100%; float: left;"> <div style="float: left;"><img src="/images/border_left_down.png" /></div> <div style="float: right;"><img src="/images/border_right_down.png" /></div> </div> </div>""" # self.insertContent("""<li><a href='/album/""" + str(album.key().id()) + """'>""" + album.name.encode("utf8") + """</a></li>""") show_rating = False if self.Session['access'] >= 0: show_rating = True self.insertContent("</div>") new_f = DBFavorites() in_fav = new_f.exists(self.Session['userid'], id, 1) self.insertTemplate("tpl_object_view.html", { 'objectname' : object.name.encode("utf8"), 'objectid' : str(id), 'objectdesription' : object.description.encode("utf8").split("\n")[1][1:-1] if object.description and len(object.description.encode("utf8").split("\n"))>1 else "</p>", 'ownerlogin' : user.login.encode("utf8"), 'ownername' : user.name.encode("utf8"), 'ownersurname' : user.surname.encode("utf8"), 'albums' : albumhtml, 'rating' : rating, 'show_rating' : show_rating, 'delobject' : True if int(object.userid) == self.Session['userid'] or self.Session['access'] >= 8 else False, 'can_vote': can_vote, 'my_vote': my_vote, 'in_fav' : in_fav, } ) self.drawPage("Объект :: " + object.name.encode("utf8"))
def get(self): self.checkSession(self.request.headers.get('Cookie'), False) id = int(self.request.uri.split('/')[-1]) self.insertMenu() album = DBAlbum.get_by_id(id) object = DBGalleryObject.get_by_id(int(album.objectid)) photos = db.Query(DBPhoto) photos.filter("albumid =", id) user = DBUser.get_by_id(int(object.userid)) # self.insertContent(""" # # <div id="triggers"> # """) photos_html = "" for photo in photos: # taghtml = "" # try: # tags = photo.tags.encode("utf8").split(", ") # for tag in tags: # taghtml += tag + """, """ ## taghtml += """<form style="float: left;" id="search""" + tag + """" action="/search/" method="post"><input type="hidden" name="find" value=""" + tag + """><span class="tag" id="hover" onclick="tagsubmit(\"""" + tag + """\");">""" + tag + """</span></form>""" # except: # taghtml = "Тэги отсутствуют"\ dbtags = DBPhotoTags.gql("where imageid = :imageid", imageid = int(photo.key().id())) tags = dbtags[0].tags.encode("utf8") if dbtags.count() != 0 else """Тэги отсутствуют""" photos_html += """ <div style="float: left; width: 136px; margin-right: 10px;"> <a href="/picture/watermark/4/""" + str(photo.key().id()) + """" title=\"""" + tags + """\"> <img src="/picture/3/""" + str(photo.key().id()) + """" /> </a> """ # try: # tags = photo.tags.encode("utf8").split(", ") # for tag in tags: # self.insertContent("""<div style="float: left;"><form style="float: left;" id="search""" + tag + """" action="/search/" method="post"><input type="hidden" name="find" value=""" + tag + """><span class="tag" id="hover" onclick='$("#search""" + tag + """").submit()'>""" + tag + """</span></form></div>""") # except: pass try: if(self.Session['access'] >=8 or self.Session['userid'] == int(album.userid) ): photos_html += """<div style="float: left; margin-left: 4px;"><span id="hover" class="tag" onclick='window.location = "/edit_photo/%s";'>Редактировать</span></div>""" % str(str(photo.key().id())) photos_html += """<div style="float: left; font-size: 10px; margin-left: 4px;">Photo ID: """ + str(photo.key().id()) + """</div>""" except: pass photos_html += "</div>" options = '' if self.Session['access'] > 5: objects = db.Query(DBGalleryObject) if self.Session['access'] < 8: objects.filter("userid =", self.Session['userid']) if objects.count()!=0: objects.order("name") else: objects.order("userid") for objecti in objects: owner = DBUser.get_by_id(int(objecti.userid)) own = """(Объект """ + owner.login.encode("utf8") + """) """ selected = "" if int(objecti.key().id()) == int(album.objectid): selected = "selected" options += """<option """ + selected + """ value=""" + str(objecti.key().id()) + """>""" + own + objecti.name.encode("utf8") + """</option>""" new_f = DBFavorites() in_fav = new_f.exists(self.Session['userid'], id, 2) self.insertTemplate("tpl_album_view.html", { 'albumid' : str(id), 'isadmin' : True if self.Session['access'] >= 8 else False, 'name' : album.name.encode("utf8"), 'connected' : object.name.encode("utf8"), 'objectid' : str(object.key().id()), 'ownerlogin' : user.login.encode("utf8"), 'ownername' : user.name.encode("utf8"), 'ownersurname' : user.surname.encode("utf8"), 'addphoto' : True if int(object.userid) == self.Session['userid'] or self.Session['access'] >= 8 else False, 'photos' : photos_html, 'options' : options, 'in_fav' : in_fav, }) self.insertComments(album.key()) self.drawPage("Альбом :: "+album.name.encode("utf8"))
def get(self): if self.checkSession(self.request.headers.get('Cookie'), False): self.insertMenu() id = int(self.request.uri.split('/')[-1]) object = DBGalleryObject.get_by_id(id) """ count rating """ votes = DBGalleryObjectRate.gql("where object = :o_key", o_key=id) rating = 0 for vote in votes: if vote.is_nice: rating += 1 else: rating -= 1 if rating < 0: rating = 0 can_vote = DBGalleryObjectRate().still_can_vote( self.Session['userid'], id) obj = DBGalleryObjectRate.gql( "where object = :o_key and voter = :userid", o_key=id, userid=self.Session['userid']) my_vote = bool(obj[0].is_nice) if not can_vote else False user = DBUser.get_by_id(int(object.userid)) albums = db.Query(DBAlbum) albums.filter("objectid =", id) albumhtml = "" for album in albums: albumhtml += """ <div class="main"> <div style="width: 100%; float: left;"> <div style="float: left;"><img src="/images/border_left_up.png" /></div> <div style="float: right;"><img src="/images/border_right_up.png" /></div> </div> <div style="padding-left: 20px; margin-right: 20px; font-size: 18px;">Альбом <a href=\"/album/""" + str( album.key().id()) + """\">\"""" + album.name.encode( "utf8") + """\"</a></div> <div style="padding-left: 20px; padding-top: 10px;"> <a href=\"/album/""" + str(album.key().id( )) + """\">Нажмите, чтобы посмотреть весь альбом</a> </div> <div style="padding-left: 20px; margin-right: 20px; padding-top: 10px;" class="triggers"> """ photos = DBPhoto.gql("where albumid = :albumid limit 0,6", albumid=int(album.key().id())) photohtml = "" for photo in photos: photohtml += """<div style="float: left; width: 136px; margin-right: 10px;"><a href="/picture/watermark/4/""" + str( photo.key().id()) + """\"><img src="/picture/3/""" + str( photo.key().id()) + """\" /></a></div>""" albumhtml += photohtml + """ <div style="clear: both; margin: 20px 20px 0px 0px; padding-top: 20px;">Комментариев к альбому: """ + str( album.comments_count if album.comments_count else 0 ) + """</div> </div> <div style="width: 100%; float: left;"> <div style="float: left;"><img src="/images/border_left_down.png" /></div> <div style="float: right;"><img src="/images/border_right_down.png" /></div> </div> </div>""" # self.insertContent("""<li><a href='/album/""" + str(album.key().id()) + """'>""" + album.name.encode("utf8") + """</a></li>""") show_rating = False if self.Session['access'] >= 0: show_rating = True self.insertContent("</div>") new_f = DBFavorites() in_fav = new_f.exists(self.Session['userid'], id, 1) self.insertTemplate( "tpl_object_view.html", { 'objectname': object.name.encode("utf8"), 'objectid': str(id), 'objectdesription': object.description.encode("utf8").split("\n")[1][1:-1] if object.description and len(object.description.encode("utf8").split("\n")) > 1 else "</p>", 'ownerlogin': user.login.encode("utf8"), 'ownername': user.name.encode("utf8"), 'ownersurname': user.surname.encode("utf8"), 'albums': albumhtml, 'rating': rating, 'show_rating': show_rating, 'delobject': True if int(object.userid) == self.Session['userid'] or self.Session['access'] >= 8 else False, 'can_vote': can_vote, 'my_vote': my_vote, 'in_fav': in_fav, }) self.drawPage("Объект :: " + object.name.encode("utf8"))