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.

Reply via email to