Exemplo n.º 1
0
    def list(self,id=None,page=1): 
        if "repoze.who.identity" in request.environ:
            user = request.environ.get('repoze.who.identity')['user']
            wholesale_tag = Session.query(UserTag).filter_by(tag='wholesale').one()
            if wholesale_tag in user.tags:
                c.wholesale=True
        c.tags = Session.query(ProductTag).all()
        c.menu_items = h.top_menu(self.menu_items,_('Shop online'))

        if session.has_key('product_querystr'):
            if session.has_key('paliasedtags'):
                for item in session['paliasedtags']:
                    exec(item)
            products = eval(session['product_querystr']+".filter(Product.deleted==False)")
            c.paginator = paginate.Page(products,
                                        page=int(request.params.get('page', page)),
                                        items_per_page = 10)
            html = render('/derived/product/list.html')
            return htmlfill.render(html,defaults=session['product_search_values'])
        else:
            products = Session.query(Product).filter_by(deleted=False)
            c.paginator = paginate.Page(products,
                                        page=int(request.params.get('page', page)),
                                        items_per_page = 10)
            return render('/derived/product/list.html')
Exemplo n.º 2
0
    def createbasket(self):
        came_from = str(request.GET.get('came_from', ''))
        values = dict(request.params)
        for item in values:
            if item.startswith('product_id.'):
                id = int(item.split('.')[-1])
                try:
                    product = Session.query(Product).filter_by(id=id).one()
                except:
                    h.flash(_('No product exist with ID: %s')%id)
                    redirect(url(controller='product',action='list'))
        if values['quant']!='':
            quantity = int(values['quant'])
        else:
            quantity =1        

        if session.has_key('basket'):
            session['basket'][id]=quantity
        else:
            session['basket']={id:quantity}
        product = Session.query(Product).filter_by(id=id).one()
        h.flash(_('%s of product %s added to basket')%(quantity,product.name))
        if came_from !='':            
            return redirect(came_from)
        redirect(url(controller='product',action='list'))
Exemplo n.º 3
0
 def edit2(self,id):
     product = Session.query(Product).filter_by(id=int(id)).one()
     jd = jcal.gregorian_to_jd(product.buy_date.year, product.buy_date.month, product.buy_date.day)
     jalali = jcal.jd_to_jalali(jd)
     jalali = str(jalali[0])+'/'+str(jalali[1])+'/'+str(jalali[2])
     values={
         'code':product.code,
         'name':product.name,
         'brand':product.brand,
         'quantity':product.quantity,
         'description':product.description,
         'buy_price':product.buy_price,
         'sell_price':product.sell_price,
         'wholesale_price':product.wholesale_price,
         'buy_date':jalali,            
     }
     tags = Session.query(ProductTag).all()
     for i,tag in enumerate(tags):
         for ptag in product.tags:
             if ptag.tag == tag.tag:
                 values['tag-%i.%i'%(i,tag.id)]=1
     return render_edit2_form(
         self.menu_items,
         values,
         number_of_photos=number_of_photos(values),
         id=product.id,
         photos=product.photos)
Exemplo n.º 4
0
 def create(self):
     values = dict(request.params)
     producttag = ProductTag(values['producttag'])
     Session.add(producttag)
     Session.commit()
     h.flash(_("Product tag %s created successfully")%values['producttag'])
     return redirect(url(controller='producttag',action='index'))
Exemplo n.º 5
0
 def create(self):
     values = dict(request.params)
     usertag = UserTag(values['usertag'])
     Session.add(usertag)
     Session.commit()
     h.flash(_("User tag %s created successfully")%values['usertag'])
     return redirect(url(controller='usertag',action='index'))
Exemplo n.º 6
0
 def update(self,id):
     values = dict(request.params)
     producttag = Session.query(ProductTag).filter_by(id=id).one()
     producttag.tag = values['producttag']
     Session.add(producttag)
     Session.commit()
     h.flash(_("Tag %s edited successfully")%producttag.tag)
     return redirect(url(controller='producttag',action='index'))
Exemplo n.º 7
0
 def create(self):        
     #if Session.query(Group).filter_by(group=request.POST['group']).one() != None:
         #abort(404)
     newgroup = Group(request.POST['group'])
     newgroup.permissions = self.form_result['permissions']         
     Session.add(newgroup)
     Session.commit()
     h.flash(_('Group successfully Created.'))
     redirect(url(controller='addgroup', action='list'))
Exemplo n.º 8
0
    def delete(self,id):
        if id is None:
            abort(404)
        group = Session.query(Group).filter_by(id=id).one()
        if group is None:
            abort(404)
        h.flash(_('Group successfully deleted.'))

        Session.delete(group)
        Session.commit()
        redirect(url(controller='addgroup', action='list'))
        return "Group Deleted"
Exemplo n.º 9
0
 def undelete(self, id):
     came_from = str(request.GET.get("came_from", "")) or url(controller="user", action="admin")
     try:
         user = Session.query(User).filter_by(id=id).one()
     except:
         h.flash(_("No user with ID:%s to delete" % id))
         return redirect(h.url(controller="user", action="index"))
     user.deleted = False
     Session.add(user)
     Session.commit()
     h.flash(_("User %s undeleted!") % user.user_name)
     return redirect(came_from)
Exemplo n.º 10
0
 def save(self,id):
     if id is None:
         abort(404)
     group = self.form_result['group']
     del self.form_result['group']
     for k,v in self.form_result.items():
         if getattr(group, k) != v:
             setattr(group, k, v)        
     Session.add(group)
     Session.commit()
     response.status_int = 302
     response.headers['location'] = url(controller='addgroup', action='list')
     return "Moved temporarily"
Exemplo n.º 11
0
    def upload(self):
        values = dict(request.params)
        overwrite = False
        if "files[]" in values:
            picfile = values["files[]"]
            fname = picfile.filename.replace(os.sep, "_")
            file_path = os.path.join(config["pylons.paths"]["static_files"], "pics", fname)
            if os.path.isfile(file_path):
                overwrite = True
            thumb_path = os.path.join(config["pylons.paths"]["static_files"], "pics", "thumbs", fname)
            watermark_path = os.path.join(config["pylons.paths"]["static_files"], "pics", "watermark2.PNG")
            permanent_file = open(file_path, "wb")
            shutil.copyfileobj(picfile.file, permanent_file)
            picfile.file.close()
            fsize = os.fstat(permanent_file.fileno())[6]
            if not overwrite:
                photo = Photo(fname)
                Session.add(photo)
                Session.commit()
            else:
                photo = Session.query(Photo).filter_by(file_path=fname).one()
            permanent_file.close()
            # use image magic to resize and water mark the photo
            call(["convert", file_path, "-strip", file_path])
            # convert "prepared/$i" -colorspace RGB "prepared/$i"
            call(["convert", file_path, "-colorspace", "RGB", file_path])
            # convert -resize 300x300 -quality 70% $img $img
            call(["convert", "-resize", "300x300", "-quality", "70%%", file_path, file_path])
            # convert -define jpeg:size=200x200 "$i" -thumbnail '69x69>' "thumbs/$i
            call(["convert", "-define", "jpeg:size=200x200", file_path, "-thumbnail", "69x69>", thumb_path])
            # composite -dissolve 6 -tile watermark2.PNG $img $img
            call(["composite", "-dissolve", "6", "-tile", watermark_path, file_path, file_path])

            session["photos"]["files"].append({"name": fname, "size": fsize, "id": photo.id})
            session.save()
        retval = []
        for item in session["photos"]["files"]:
            retdict = dict()
            retdict["name"] = item["name"]
            retdict["size"] = item["size"]
            retdict["id"] = item["id"]
            retdict["type"] = ("image\/jpeg",)
            retdict["url"] = "/pics/%s" % item["name"]
            retdict["thumbnail_url"] = "/pics/thumbs/%s" % item["name"]
            retdict["delete_url"] = "/photo/delete?id=%s" % item["id"]
            retdict["delete_type"] = "DELETE"
            if overwrite:
                retdict["info"] = "File over writen on photo with id %s" % item["id"]
            retval.append(retdict)

        return retval
Exemplo n.º 12
0
 def delcommons(user):
     phones = Session.query(Phone).filter_by(user_id=user.id).all()
     addresses = Session.query(Address).filter_by(user_id=user.id).all()
     emails = Session.query(Email).filter_by(user_id=user.id).all()
     for phone in phones:
         Session.delete(phone)
     for address in addresses:
         Session.delete(address)
     for email in emails:
         Session.delete(email)
Exemplo n.º 13
0
    def edit(self,id):     
        values={}
        group = Session.query(Group).filter_by(id=id).one()
        values['group']= group.group

        c.permissions = Session.query(Permission).all()
        for i,perm in enumerate(c.permissions):
            for permission in group.permissions:
                if permission.name == perm.name:
                    values['permissions-%i.%i'%(i,perm.id)]= 1                

        c.menu_items = h.top_menu(self.menu_items,_('Customers'))
        html = render('/derived/group/edit.html')
        return htmlfill.render(html, defaults=values)
Exemplo n.º 14
0
    def forgotaction(self):
        values = dict(request.params)
        del values["action"]
        msg = ""
        settingsf = file(config["settings_file"], "rb")
        session["site_settings"] = pickle.load(settingsf)
        settingsf.close()
        session.save()

        captchres = h.captcha.submit(
            values["recaptcha_challenge_field"],
            values["recaptcha_response_field"],
            "6LepGccSAAAAAMfzDtmvyRjJ7-A1FWuJa5qUTxX2",
            session["site_settings"]["ip_address"],
        )
        if not captchres.is_valid:
            c.menu_items = h.top_menu(self.menu_items, _("Customers"))
            html = render("/derived/user/forgot.html")
            return htmlfill.render(html, values, errors={"captcha": _("Invalid Captcha try again")})

        user = Session.query(User).join(User.emails).filter(Email.email_address == values["email"]).one()
        confcode = str(uuid.uuid1())
        uconf = UserConfirm(user, confcode)
        Session.add(uconf)
        Session.commit()

        message = Message(
            session["site_settings"]["forgotpass"],
            user.emails[0].email_address,
            _("Kazhal trading Reset password"),
            encoding="utf-8",
        )
        msg += _("If you requested a password reset click the below link\n")
        ##msg += "%s%s"%(request.application_url,h.url(controller='user',action='resetpassEmail',id=user.id,confcode=confcode))
        msg += "%s%s" % (
            request.application_url,
            url(controller="user", action="resetpassEmail", id=user.id, confcode=confcode),
        )
        c.contents = msg
        msgHtml = render(_("/derived/emails/forgotpass.html"))
        message.rich = msgHtml
        message.plain = msg
        message.send()
        h.flash(
            _(
                "An email has been sent to your address.To reset your password check your email and  click on the confirm link."
            )
        )
        return redirect(url(controller="user", action="forgot"))
Exemplo n.º 15
0
def render_edit_form_admin(menu_items,values=None, errors=None, id=None):    
    if "repoze.who.identity" in request.environ:
        user = request.environ.get('repoze.who.identity')['user']
        wholesale_tag = Session.query(UserTag).filter_by(tag='wholesale').one()
        if wholesale_tag in user.tags:
            c.wholesale = True
    c.menu_items = h.top_menu(menu_items,_('Shop online'))
    invoice = Session.query(Invoice).filter_by(id=int(id)).one()
    invoice_items = Session.query(Invoice_item).filter_by(invoice_id=invoice.id).order_by(Invoice_item.product_id).all()
    c.invoice_items = invoice_items
    c.invoice = invoice    
    if values is None:
        return render('/derived/invoice/staff/edit.html')
    else :
        html = render('/derived/invoice/staff/edit.html')
        return  htmlfill.render(html, defaults=values, errors=errors)
Exemplo n.º 16
0
 def validate_python(self,value, state):
      try:
           phone = Session.query(Phone).filter_by(phone_number=str(int(value))).one()              
      except:
           return
      else:
           raise Invalid(_('This phone number allready registered an acount'),value,state)
Exemplo n.º 17
0
def render_new_form(menu_items,values=None, errors=None, number_of_photos=0):
    c.number_of_photos = number_of_photos
    c.menu_items = h.top_menu(menu_items,_('Products'))
    c.tags = Session.query(ProductTag).all()
    #c.roles = ['test1','test2']
    html = render('/derived/product/new.html')
    return htmlfill.render(html, defaults=values, errors=errors)
Exemplo n.º 18
0
 def view(self,id):
     if "repoze.who.identity" in request.environ:
         user = request.environ.get('repoze.who.identity')['user']
         wholesale_tag = Session.query(UserTag).filter_by(tag='wholesale').one()
         if wholesale_tag in user.tags:
             c.wholesale = True
     try:
         product = Session.query(Product).filter_by(id=id).one()
     except:
         h.flash(_('No product exist with ID: %s')%id)
         redirect(url(controller='product',action='list'))
     if request.environ.get("repoze.who.identity") is not None:
         c.permissions = request.environ["repoze.what.credentials"]["permissions"] 
     c.product = product
     c.menu_items = h.top_menu(self.menu_items,_('Products'))        
     return render('/derived/product/view.html')
Exemplo n.º 19
0
 def _to_python(self,value,state):
      #items = value.items()
      try:                
           customer = Session.query(User).filter(User.user_name.like('%%'+str(value)+'%%')).all()
           return customer
      except:
           raise Invalid("No User with name like this exists!", value, state)
Exemplo n.º 20
0
 def index(self,page=1):                        
     c.menu_items = h.top_menu(self.menu_items,_('Products'))
     products = Session.query(Product)
     c.paginator = paginate.Page(products,
                                 page=int(request.params.get('page', page)),
                                 items_per_page = 10)        
     return render('/derived/product/index.html')                       
Exemplo n.º 21
0
 def validate_python(self,value, state):
      try:
           emailad = Session.query(Email).filter_by(email_address=value).one()            
      except:
           return
      else:
           raise Invalid(_('This email allready registered an acount'),value,state)
Exemplo n.º 22
0
 def index(self,page=1):
     c.menu_items = h.top_menu(self.menu_items,_('Home'))
     tags = Session.query(ProductTag)
     c.paginator = paginate.Page(tags,
                                 page=int(request.params.get('page', page)),
                                 items_per_page = 10)
     return render('/derived/producttag/staff/index.html')
Exemplo n.º 23
0
def create_dict(user):
    adict = {}
    if user.phones != []:
        for i, phone in enumerate(user.phones):
            adict["phone-%s.phone_number" % i] = phone.phone_number
            adict["phone-%s.p_type" % i] = phone.p_type
            adict["phone-%s.id" % i] = phone.phone_number
    if user.addresses != []:
        for i, address in enumerate(user.addresses):
            adict["address-%i.city" % i] = address.city
            adict["address-%i.state" % i] = address.state
            adict["address-%i.add1" % i] = address.add1
            adict["address-%i.add2" % i] = address.add2
            adict["address-%i.po_code" % i] = address.po_code
            adict["address-%s.id" % i] = address.id
    if user.photo:
        adict["phto"] = user.photo
    if user.emails != []:
        for i, email in enumerate(user.emails):
            adict["email-%s.email_address" % i] = email.email_address
            adict["email-%s.confirm_email_address" % i] = email.email_address
            adict["email-%s.id" % i] = email.email_address
    if user.tags != []:
        tags = Session.query(UserTag).all()
        for i, tagp in enumerate(tags):
            for tag in user.tags:
                if tagp.tag == tag.tag:
                    adict["tag-%s.%s" % (i, tag.id)] = 1
                # adict['tagid-%s.id'%i]=tag.id
    if user.groups != []:
        groups = Session.query(Group).all()
        for i, group in enumerate(groups):
            for groupu in user.groups:
                if groupu.group == group.group:
                    adict["role-%s.%s" % (i, group.id)] = 1
                # adict['roleid-%s.id'%i] = group.id
    adict["first_name"] = user.first_name
    adict["last_name"] = user.last_name
    adict["user_name"] = user.user_name
    adict["password"] = ""
    adict["confirm_password"] = ""
    adict["birth_date"] = h.gtoj(user.birth_date)
    adict["SSN"] = user.SSN
    adict["balance"] = user.balance
    adict["cradit"] = user.cradit
    return adict
Exemplo n.º 24
0
    def editbasket(self):
        if "repoze.who.identity" in request.environ:
            user = request.environ.get('repoze.who.identity')['user']
            wholesale_tag = Session.query(UserTag).filter_by(tag='wholesale').one()
            if wholesale_tag in user.tags:
                c.wholesale=True

        if session.has_key('basket') and session['basket']!={}:
            products=[]
            for item in session['basket']:
                products.append(Session.query(Product).filter_by(id=item).one())
            c.products = products   
            c.menu_items = h.top_menu(self.menu_items,_('Shop online'))      
            return render('/derived/product/editbasket.html')
        else:
            h.flash(_('No Items in basket'))
            return redirect(url(controller='product', action='list'))
Exemplo n.º 25
0
def render_editbasket(menu_items,values=None, errors=None):
    products=[]
    for item in session['basket']:
        products.append(Session.query(Product).filter_by(id=item).one())
    c.products = products   
    c.menu_items = h.top_menu(menu_items,_('Products'))      
    html = render('/derived/product/editbasket.html')
    return htmlfill.render(html,defaults=values, errors=errors)
Exemplo n.º 26
0
def render_edit2_form(menu_items,values=None, errors=None, number_of_photos=0, id=None, photos=None):
    c.number_of_photos = number_of_photos
    c.tags = Session.query(ProductTag).all()
    c.menu_items = h.top_menu(menu_items,_('Products'))
    c.old_photos = photos
    c.product_id = id 
    html = render('/derived/product/edit2.html')
    return htmlfill.render(html, defaults=values, errors=errors)
Exemplo n.º 27
0
 def resetpassEmail(self, id):
     confcode = request.params.getone("confcode")
     try:
         user = Session.query(User).filter_by(id=id).one()
         userconf = (
             Session.query(UserConfirm)
             .join(UserConfirm.user)
             .filter(User.id == user.id)
             .filter(UserConfirm.confirm_code == confcode)
             .one()
         )
     except:
         h.flash(_("wrong reset confirmation info."))
         return redirect(url(controller="home", action="index"))
     c.user = user
     c.confcode = userconf.confirm_code
     c.menu_items = h.top_menu(self.menu_items, _("Customers"))
     return render("/derived/user/resetpass.html")
Exemplo n.º 28
0
 def _delete(self,invoice):
     if not invoice.pending:
         h.flash(_('You can not delete a confirmed invoice.'))
         return redirect(h.url(controller='invoice',action='index'))
     invoice.deleted = True
     customer = invoice.customer
     invoice_items=[]
     for invoice_item in invoice.invoice_items:            
         product = invoice_item.product
         product.quantity += invoice_item.quantity
         customer.balance += invoice_item.total_price
         Session.add(customer)
         Session.add(product)                
         Session.add(invoice_item) 
     Session.add(invoice)
     Session.commit()
     h.flash(_('Invoice %s was marked as deleted')%invoice.id)
     return redirect(url(controller='invoice',action='index'))
Exemplo n.º 29
0
 def edit(self,id):
     c.menu_items = h.top_menu(self.menu_items,_('Home'))
     c.action = "update"
     producttag = Session.query(ProductTag).filter_by(id=id).one()
     c.id=producttag.id
     values={}
     values['producttag'] = producttag.tag
     html = render('/derived/producttag/staff/new.html')
     return htmlfill.render(html,defaults=values)
Exemplo n.º 30
0
    def getpage(self):
        page = int(request.params.get("page"))
        photos = Session.query(Photo)

        itemspp = 30
        if "itemspp" in request.params:
            itemspp = int(request.params.get("itemspp"))

        c.paginator = paginate.Page(photos, page=int(page), items_per_page=itemspp)
        return render("/derived/photo/photopage.html")