Hello.
The problem was in "view_time" field. If substitute parsed value
"view_time" from previous "get" request, all work.
About XmlRpcPlugin. I haven't considered this variant. Our trac very loaded
system. And if any issue will occur or service interrupt occur my boss
will fire me at the same moment. And besides I do not have access to the
trac server. =)
Thank you. Your comment was very helpful for me. You helped me a lot.
среда, 3 мая 2017 г., 9:42:18 UTC+3 пользователь RjOllos написал:
>
>
>
> On Tuesday, May 2, 2017 at 12:46:32 PM UTC-7, Гордон Шамвей wrote:
>>
>> Hello.
>> I want to change the card component automatically using the post request in
>> the python.
>> I tried everything I could and knew.
>> But trac gives me just only that (in any version of my code):
>>
>> This ticket has been modified since you started editing. You should
>>> review
>>> the other modifications which have been appended above, and any
>>> conflicts
>>> shown in the preview below. You can nevertheless proceed and submit your
>>> changes if you wish so.
>>
>>
>> I know for sure: no one changed it.
>>
>> I'm at a loss. Can you help me?
>> # _*_ coding:utf-8 _*_
>> #!/usr/bin/python
>> import requests
>> from requests.auth import HTTPDigestAuth
>> from requests.auth import HTTPBasicAuth
>> import time
>> def payload2(hed):
>> payload={\
>> "__FORM_TOKEN" : hed,\
>> "__EDITOR__1" : "textarea",\
>> "comment" : "test",\
>> "field_summary" : "test",\
>> "__EDITOR__2" : "textarea",\
>> "field_description" : "",\
>> "field_type" : u"info",\
>> "field_priority" : "major",\
>> "field_milestone" : "",\
>> "field_component" : u"Info",\
>> "field_keywords" : "",\
>> "field_cc" : "",\
>> "action" : "leave",\
>> "start_time" : str(current_time),\
>> "view_time" : str(current_time),\
>> "replyto" : "",\
>> "submit" : "Submit+changes"\
>> }
>> return payload
>> current_time = int(time.time()*1000000)
>> URL = "http://trac.bla-bla.com/ticket/91279"
>> with requests.Session() as s:
>> s = requests.Session()
>> s.auth= ('user', 'password')
>> login = s.get(URL)
>> s.cookies = login.cookies
>> hed = login.cookies["trac_form_token"]
>> hed = str(hed)
>> pay = payload2(hed)
>> ttt = requests.utils.dict_from_cookiejar(login.cookies)
>> print_text = s.post(URL, data=pay, cookies=ttt)
>> print unicode(print_text.text).encode('utf8')
>> print print_text.cookies
>> print requests.utils.dict_from_cookiejar(login.cookies)
>>
>> But ticket does not change.
>>
>
> You'll need to know the ticket changetime:
>
> https://trac.edgewall.org/browser/tags/trac-1.2.1/trac/ticket/web_ui.py?marks=1297,1298#L1295
> It's a hidden field of the ticket page.
>
> Have you considered using XmlRpcPlugin?
>
> https://trac-hacks.org/wiki/XmlRpcPlugin
>
> - Ryan
>
>
--
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.