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?

> 
>> - 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.

> 
>> - 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
>>>>> 
>> 

Reply via email to