def post(self):
        self.response.headers['Content-Type'] = 'text/html'

        # GET USER KEY
        user = users.get_current_user()
        myuser_key = ndb.Key('MyUser', user.user_id())

        url_id = int(self.request.get('gallery_id_delete'))
        gallery_details = Gallery.get_by_id(url_id)

        # GET NEW IMAGE DETAILS
        image_id = int(self.request.get('image_key'))
        image_details = Image.get_by_id(image_id)

        action = self.request.get('button')

        if action == 'Yes':
            # DELETE PICTURE
            # self.response.write(image_details)
            gallery_details.image_key.remove(image_details.key)
            gallery_details.put()
            image_details.key.delete()
            self.redirect('/gallery?url=' + str(gallery_details.key.urlsafe()))
Example #2
0
    def get(self):
        self.response.headers['Content-Type'] = 'text/html'

        url = ''
        welcome = ''
        login_status = ''

        user = users.get_current_user()

        if user:
            url = users.create_logout_url('/')
            login_status = 'Logout'

            myuser_key = ndb.Key('MyUser', user.user_id())
            myuser = myuser_key.get()

            if myuser == None:
                myuser = MyUser(id=user.user_id(), email=user.email())
                myuser.put()

            user_info = MyUser.get_by_id(myuser_key.id())
            user_galleries = user_info.gallery_key

            all_imgs_in_gallery = []
            all_gallery_names = []
            multiple_results = []

            for i in user_galleries:
                aa = []
                gallery_deets = Gallery.get_by_id(i.id()).image_key
                for g in gallery_deets:
                    aa.append(Image.get_by_id(g.id()).image_name)
                all_imgs_in_gallery.append(aa)
                all_gallery_names.append(Gallery.get_by_id(i.id()).gallery_name)

            # self.response.write(all_imgs_in_gallery)

            dic = defaultdict(list)

            for i, x in enumerate(all_imgs_in_gallery):
                for j, y in enumerate(x):
                    dic[y].append((i, j))

            for num, coords in dic.items():
                if len(coords) > 1:
                    multiple_text = "\"{0}\" appears in ".format(num)
                    uu = []
                    unique_uu = []
                    for x in coords:
                        jj = int(str(x)[1])
                        uu.append(all_gallery_names[jj])
                        # for q in uu:
                        # yu = len(all_gallery_names[jj] in uu)
                        yu = uu.count(all_gallery_names[jj])
                        if yu <= 1:
                            unique_uu.append(all_gallery_names[jj])

                    multiple_results.append(multiple_text + ", ".join(str(x) for x in unique_uu))




        else:
            url = users.create_login_url(self.request.uri)
            login_status = 'Login'

        template_values = {
            'url': url,
            'user': user,
            'welcome': welcome,
            'login_status': login_status,
            'user_email': user.email(),
            'user_galleries': user_galleries,
            'myuser_key': myuser_key,
            'Gallery': Gallery,
            'Image': Image,
            'multiple_results': multiple_results,
        }

        template = JINJA_ENVIRONMENT.get_template('dashboard.html')
        self.response.write(template.render(template_values))
    def get(self):
        self.response.headers['Content-Type'] = 'text/html'

        url = ''
        welcome = ''
        login_status = ''

        user = users.get_current_user()

        if user:
            url = users.create_logout_url('/')
            login_status = 'Logout'

            myuser_key = ndb.Key('MyUser', user.user_id())
            myuser = myuser_key.get()

            user_info = MyUser.get_by_id(myuser_key.id())
            user_galleries = user_info.gallery_key

        else:
            url = users.create_login_url(self.request.uri)
            login_status = 'Login'

        url_link = self.request.get('url')
        url_info = ndb.Key(urlsafe=url_link)
        url_id = url_info.id()

        gallery_details = Gallery.get_by_id(url_id)
        pictures_in_gallery = gallery_details.image_key

        count = 0
        duplicate_count = 0
        img_in_gallery = []
        duplicates = []
        final_duplicates = []

        for i in pictures_in_gallery:
            count += 1
            img_in_gallery.append(Image.get_by_id(i.id()).image_name)

        for x in img_in_gallery:
            if img_in_gallery.count(x) > 1:
                duplicates.append(x)
                for y in duplicates:
                    if y not in final_duplicates:
                        final_duplicates.append(y)

        duplicate_count = len(final_duplicates)

        template_values = {
            'url': url,
            'user': user,
            'welcome': welcome,
            'login_status': login_status,
            'user_email': user.email(),
            'gallery_details': gallery_details,
            'myuser_key': myuser_key,
            'Gallery': Gallery,
            'upload_url': blobstore.create_upload_url('/upload'),
            'pictures_in_gallery': pictures_in_gallery,
            'Image': Image,
            'count': count,
            'duplicates': duplicates,
            'duplicate_count': duplicate_count,
        }

        template = JINJA_ENVIRONMENT.get_template('gallery.html')
        self.response.write(template.render(template_values))