I forked satchmo on bitbucket and sent a pull request with the changes made. I'm not sure if that was the best way to go about it but I figured that way if I make any changes in the future it will be easy enough to submit a pull. I've been using my modified version and so far it works perfect but if anyone else wants to give it a try that would be great.
-Josh On Jan 7, 6:53 pm, Chris Moffitt <[email protected]> wrote: > Josh, > > Looks useful. If you wouldn't mind, could you submit a ticket with a patch > and I'll take a look at incorporating. > > Thanks, > Chris > > > > > > > > On Fri, Jan 7, 2011 at 5:53 PM, Josh <[email protected]> wrote: > > In base.html I opted to use satchmo_category_search_form rather than > > satchmo_search_form to allow users to search on a per category basis. > > I noticed a bug which is that if you select a category other than all > > products and click search with an empty search box you get an error > > rather than no results. So I dove into the code (search.py) and fixed > > it by adding a check that if keywords is empty it should immediately > > return with results as none. I also made it so that quoted strings > > are preserved in search terms i.e. putting: > > just a "test string" > > in the search box would produce the following search keywords: > > ['test string', 'just', 'a'] > > rather than > > ['just', 'a', '"test', 'string"'] > > Allowing for searching for exact phrases. > > > I realize that it reorders the terms but I don't think this matters. > > Anyways here is what I changed. In search_view (satchmo_store/shop/ > > views/search.py) I replaced: > > > keywords = data.get('keywords', '').split(' ') > > category = data.get('category', None) > > > keywords = filter(None, keywords) > > > results = {} > > > with: > > > keywords = " ".join(data.get('keywords', '').split()).split('"') > > if keywords == ['']: #thats two single quotes, not a > > double quote > > category = data.get('category', None) > > context = RequestContext(request, { > > 'results': None, > > 'category' : category, > > 'keywords' : keywords}) > > return render_to_response(template, context_instance=context) > > keywords = ["" + t.strip(punctuation) > > for t in keywords[1::2] + "".join(keywords[::2]).split()] > > category = data.get('category', None) > > > keywords = filter(None, keywords) > > > results = {} > > > The code that allows for quoted strings is based on the same thing in > > mezzanine, a django cms. > > > Feel free to include this in satchmo, or improve upon it or whatever. > > Another option would be to use shlex.split() rather than just split > > but apparently it doesn't play nice with unicode characters so I > > figured it wasn't the best option. > > > Josh > > > -- > > You received this message because you are subscribed to the Google Groups > > "Satchmo users" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<satchmo-users%2bunsubscr...@goog > > legroups.com> > > . > > For more options, visit this group at > >http://groups.google.com/group/satchmo-users?hl=en. -- You received this message because you are subscribed to the Google Groups "Satchmo users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/satchmo-users?hl=en.
