Can you try setting a breakpoint in the match_request method and see what is happening? (Does it get called? What is the value of req.path_info?) I don't see any reason why would requests be matched in global environment, but not in product ones.
On Wed, Jun 26, 2013 at 5:21 PM, Antonia Horincar <[email protected]> wrote: > On Wed, Jun 26, 2013 at 6:00 PM, Matevž Bradač <[email protected]> wrote: >> >> On 26. Jun, 2013, at 16:43, Antonia Horincar wrote: >> >>> On Wed, Jun 26, 2013 at 5:29 PM, Matevž Bradač <[email protected]> wrote: >>>> >>>> On 26. Jun, 2013, at 16:14, Antonia Horincar wrote: >>>> >>>>> Hi Pranay, >>>>> >>>>> Thanks for the link, I had a look at it yesterday, but unfortunately >>>>> it doesn't help me with the error. >>>>> >>>>> I'm still not sure what's causing this error to come up every time I >>>>> try to access a ticket through my API. The ticket exists, I checked >>>>> this in the Python interpreter. I am suspecting that the problem might >>>>> be caused by the environment, but don't know why or how to solve it. I >>>>> have 'forced' the API to use the "bloodhound/environments/main" >>>>> environment by writing >>>>> env = trac.env.Environment("bloodhound/environments/main") >>>>> in the process_request method (I only did this so that maybe I could >>>>> see what's causing the error). >>>>> After doing this, I tried to access the ticket again and the error was >>>>> KeyError: 'author_id', and this made me think that maybe the >>>>> application runs on a different environment that the one I forced my >>>>> API to run on. I'm definitely not sure if this is the problem. I will >>>>> continue to try to solve this, but I am stuck for now. If anyone has >>>>> the slightest idea on what could be the problem, that would be more >>>>> than welcome. >>>> >>>> This could be related to multiproduct functionality. Could you >>>> specify some more details on the following: >>>> - How was the ticket created? Programatically or in the web UI? >>> >>> The ticket was created through the web UI. >> >> Ok, it should "belong" to a specific product then. Do you have >> multiple products set up, or are you just using the default one? > > I am using the default one. > >> >>> >>>> - What does the SQL dump for that ticket from the Bloodhound DB look >>>> like? (e.g. something like "SELECT * FROM ticket WHERE id=1;") >>> >>> I looked at the logs in the console but the database queries are not >>> displayed. Only the requests. >> >> Correct, you have to manually run the query from the database. >> If you have installed Bloodhound with sqlite3 as its database, try >> the following (you need to have sqlite3 installed beforehand): >> 1. Traverse to the "db" directory in the BH environment. IIRC the >> relative path should be "bloodhound/environments/main/db". >> 2. Open the database with >> sqlite3 bloodhound.db >> 3. List the ticket using the select statement >> SELECT * FROM ticket WHERE id=<ID>; >> replace the <ID> part with the actual ticket ID. > > This is weird, it says Error: no such table: ticket. Did I not > configure the database properly then? > >> >>> >>>> - How are you accessing that ticket from the code? I understand it's >>>> from a template, is that template loaded in a specific product >>>> environment or in the global one? >>> >>> The template is loaded only for my plugin, it's not a global one. Well >>> actually, it doesn't load because from what I saw the error occurs >>> before reaching the template. >> >> I'm assuming that the "self.env" referenced in your code doesn't >> match the ticket's, or something similar. Could you dump the >> self.env and ticket_id from the code, so that we can compare them >> to the SQL dump? >> >>> >>>> >>>> -- >>>> matevz >>>> >>>> >>>>> >>>>> Thanks, >>>>> Antonia >>>>> >>>>> On Wed, Jun 26, 2013 at 1:29 AM, Pranay B. Sodre >>>>> <[email protected]> wrote: >>>>>> Antonia- I am trying to understand this Ticket field myself. The place I >>>>>> am >>>>>> looking at to fully understand how this is structured is listed below. >>>>>> The >>>>>> structure is based on code written here >>>>>> http://trac.edgewall.org/browser/branches/1.0-stable/trac/ticket/model.py?rev=11830 >>>>>> >>>>>> Look at line 120. I am not sure if this will answer your question, but >>>>>> it a >>>>>> place to look. >>>>>> >>>>>> Pranay B. >>>>>> >>>>>> "He is richest who is content with the least, for content is the wealth >>>>>> of >>>>>> nature."- >>>>>> >>>>>> Socrates >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On 25 June 2013 14:31, Antonia Horincar <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I made a basic template for displaying ticket information when >>>>>>> accessing a certain path, but I am having trouble with processing the >>>>>>> ticket. It gives me an error "Ticket <id> does not exist" even though >>>>>>> there is a ticket with the id that I entered. What I did in my api, >>>>>>> after matching the request, in the process_request method was >>>>>>> something like this: >>>>>>> data = {'ticket': model.Ticket(self.env, ticket_id)}, where ticket_id >>>>>>> is the id of the req argument. >>>>>>> >>>>>>> I have checked if the matching does indeed find the correct id, and it >>>>>>> does. I have looked through the other Bloodhound APIs but I found no >>>>>>> clue that could help me determine the cause of my error. If anyone >>>>>>> encountered this error before and knows what might be causing it, can >>>>>>> you please help me? I might be missing something or I might have >>>>>>> misunderstood some concepts. >>>>>>> >>>>>>> Thanks, >>>>>>> Antonia >>>>>>> >>>> >>
