Files
cdtestplant_v1/apps/project/controllers/__pycache__/project.cpython-313.pyc

96 lines
23 KiB
Plaintext
Raw Normal View History

2025-04-29 18:09:00 +08:00
<EFBFBD>
2026-02-05 18:27:04 +08:00
<00> <0B>ibN<00><00><><00>SSKJr SSKJr SSKJr SSKJrJr SSK J
2025-04-29 18:09:00 +08:00
r
2026-02-04 11:24:15 +08:00
SSK J r SSK JrJrJr SSKJr SS KJr SS
2026-02-05 18:27:04 +08:00
KJr SS KJr SS KJr SS KJr SSKJr SSKJ r SSK!J"r"J#r# SSK$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r, SSK-J.r.J/r/J0r0J1r1J2r2J3r3J4r4 SSK5J6r6 SSK7J8r8 SSK9J:r: \Rv"5S- r<\Rv"5S- r=\"S\"5\/S/S9"SS\55r>g)<1E>)<01>Path)<01>date)<01>List)<02>copytree<65>rmtree)<01>get_object_or_404)<01> transaction)<03>api_controller<65>ControllerBase<73>route)<01>IsAuthenticated)<01>JWTAuth)<01>Users)<01> MyPagination)<01>paginate)<01> HttpError)<01>Query)<01> ChenResponse)<02>create<74>multi_delete_project)<08>Project<63>Round<6E>ProjectSoftSummary<72> StuctSortData<74>StaticSoftItem<65>StaticSoftHardware<72>DynamicSoftTable<6C>DynamicHardwareTable)<07>ProjectRetrieveSchema<6D>ProjectFilterSchema<6D>ProjectCreateInput<75> DeleteSchema<6D>SoftSummarySchema<6D>
DataSchema<EFBFBD>StaticDynamicData)<01> get_str_dict<63><01>time_return_to)<01>conditionNoneToBlank<6E>mediazconf/base_documentz/testmanage/projectu项目表相关)<03>auth<74> permissions<6E>tagsc<00><><00>\rSrSr\R
2025-04-29 18:09:00 +08:00
"S\\S9\"\ 5\
"S54S\ 4Sjj55r \R
"S\S9\ RS\4S j55r\R""S
5\ RS \4S j55r\R("S 5\ RS\S\4Sj55r\R,"S5\ RS \4Sj55r\R
"S5\ RS\4Sj55r\R
"S5\ RS\4Sj55r\R
2026-02-04 11:24:15 +08:00
"S5\ RS\4Sj55r\S\\4Sj5r\R""S5\ RS\4Sj55r \R
"S\\S9\ RS\4Sj55r!\R""S5\ RS\S \4S!j55r"\R
2026-02-05 18:27:04 +08:00
"S"\S9\ RS\4S#j55r#\S$\$4S%j5r%\R
"S&5S\S$\$4S'j5r&\R""S(5\ RS \'4S)j55r(S*r)g+),<2C>ProjectController<65>z/index)<01>response.<2E>filtersc <00>N<00>[U5 URRRR S5nUcSnURRRR S5nUcSnX#/n/nURRRR 5HNupgUR S5S:wdMURURRRU5 MP [RRURURXARURURUR XQR"S9 R%S5nUR&S :waURUR&S
2025-04-29 18:09:00 +08:00
9n/n URRR(n
U
(abU
R*S :waRUHJn U RU
R:XdU
RU R,;dM9U RU 5 ML U $U$) NzsearchOnlyTimeRange[0]z
2000-01-01zsearchOnlyTimeRange[1]z
2026-02-05 18:27:04 +08:00
9999-01-01<30>member<65><72><EFBFBD><EFBFBD><EFBFBD>) <09>ident__icontains<6E>name__icontains<6E>beginTime__range<67>duty_person__icontains<6E>security_level__icontains<6E>report_type__icontains<6E>step__icontains<6E>member__contains<6E>secret__icontainsz-create_datetime<6D>)<01> soft_type<70>admin)r)<00>context<78>request<73>GET<45>get<65>items<6D>find<6E>appendr<00>objects<74>filter<65>ident<6E>name<6D> duty_person<6F>security_level<65> report_type<70>step<65>secret<65>order_byr@r+<00>roler4) <0C>selfr2<00>
start_time<EFBFBD>end_time<6D> date_list<73> member_list<73>key<65>value<75>qs<71>final_qs<71> auth_info<66>projs <20>EE:\pycharmProjects\cdtestplant_v1\apps\project\controllers\project.py<70> list_project<63>ProjectController.list_project s<><00><00> <1D>W<EFBFBD>%<25><19>\<5C>\<5C>)<29>)<29>-<2D>-<2D>1<>1<>2J<32>K<>
2025-04-29 18:09:00 +08:00
<EFBFBD> <15> <1D>%<25>J<EFBFBD><17><<3C><<3C>'<27>'<27>+<2B>+<2B>/<2F>/<2F>0H<30>I<><08> <13> <1B>#<23>H<EFBFBD><1F>*<2A> <09><18> <0B><1E>,<2C>,<2C>.<2E>.<2E>2<>2<>8<>8<>:<3A>J<EFBFBD>C<EFBFBD><12>x<EFBFBD>x<EFBFBD><08>!<21>R<EFBFBD>'<27><1B>"<22>"<22>4<EFBFBD><<3C><<3C>#7<>#7<>#;<3B>#;<3B>C<EFBFBD>#@<40>A<>;<3B><15>_<EFBFBD>_<EFBFBD> #<23> #<23>$<24>]<5D>]<5D>G<EFBFBD>L<EFBFBD>L<EFBFBD>&<26>?R<>?R<>&-<2D>&<<3C>&<<3C>#*<2A>#6<>#6<><07> <0C> <0C>(<28>N<EFBFBD>N<EFBFBD> $<24>L<01>
MU<01>H<EFBFBD> <1E>M <20> <0B> <13> <1C> <1C><02> "<22><13><19><19>W<EFBFBD>%6<>%6<><19>7<>B<EFBFBD><16><08><1F><<3C><<3C>/<2F>/<2F>4<>4<> <09> <14><18>~<7E>~<7E><17>(<28><1E>D<EFBFBD><1B>'<27>'<27>9<EFBFBD>><3E>><3E>9<>Y<EFBFBD>^<5E>^<5E>t<EFBFBD>{<7B>{<7B>=Z<> <20><0F><0F><04>-<2D><1F> <20><0F><11> <09>z/findOneById/{int:project_id}<7D>
2026-02-05 18:27:04 +08:00
project_idc<00>"<00>[[US9nU$)N<><01>id)rr)rTrc<00> project_objs r_<00>get_project_by_id<69>#ProjectController.get_project_by_idGs<00><00>(<28><07>J<EFBFBD>?<3F> <0B><1A>rbz/save<76>datac <00>z<00>UR5n[RRUR5SS9nU(a [ SSSS9$[ UR RU[5nU(ax[RR URSSSSSS RURS
/5S 9 [n[UR- n[XV5 [ SSSS9$g![a [ S S S S9s$[ a [ S S SS9s$["a [ S S SS9s$f=f)NrK)rK<00><>u$项目标识重复请重新设置<E8AEBE><03>code<64>status<75>message<67>0u 第1轮测试u第一轮测试r?z-R1)rcrY<00>level<65>titlerL<00>remarkrK<00><>uL错误检查是否打开了服务器的conf中的文档关闭后重试<E9878D>3文件标识已存在或输入为空格请修改<E4BFAE>文件不存在请检查<E6A380><E69FA5>u-添加项目成功,并添加第一轮测试)<12>dictrrIrJrrrBrCrrf<00>joinrK<00>base_document_path<74>
media_pathr<00>PermissionError<6F>FileExistsError<6F>FileNotFoundError)rTrj<00> data_dict<63> ident_qucoverr[<00>src_dir<69>dist_dirs r_<00>create_project<63> ProjectController.create_projectMs3<00><00><19>I<EFBFBD>I<EFBFBD>K<EFBFBD> <09><1F><0F><0F>.<2E>.<2E>T<EFBFBD>Y<EFBFBD>Y<EFBFBD>[<5B><17>5I<35>.<2E>J<> <0A> <18><1F>S<EFBFBD><13>>d<>e<> e<> <13>D<EFBFBD>L<EFBFBD>L<EFBFBD>(<28>(<28>)<29>W<EFBFBD> =<3D><02> <0A> <11>M<EFBFBD>M<EFBFBD> <20> <20>B<EFBFBD>E<EFBFBD>E<EFBFBD>s<EFBFBD>#<23>_<EFBFBD>cr<63>(9<><12><17><17>"<22>(<28>(<28>TY<54>IZ<49>A[<5B> !<21> ]<01>)<29>G<EFBFBD>!<21>B<EFBFBD>H<EFBFBD>H<EFBFBD>,<2C>H<EFBFBD> a<01><18><17>+<2B> <20>S<EFBFBD><13>>m<>n<> n<> <0E><>#<23> |<01>#<23><13>S<EFBFBD>,z<>|<01>|<01>"<22> y<01>#<23><13>S<EFBFBD>Bw<42>x<>x<>$<24> a<01>#<23><13>S<EFBFBD>B_<42>`<60>`<60> a<01>s<00> C6<00>6D:<03> D:<03>#D:<03>9D:z/update/{project_id}<7D>payloadc<00>8<00>UR[US9nURnUR5R 5HupV[ X5U5 M UR 5 URnXt:wa<>[[U- 5R[UR- 5 URR5H3nURRXG5UlUR 5 M5 URR5H3n U RRXG5U lU R 5 M5 [SSSS9$![a [SSSS9s$[ a [SSSS9s$["a [SSSS9s$f=f) Nreruu-错误请关闭文件资源管理器再试rmrvrwrxu项目更新成功)<12>get_object_or_exceptionrrKryrF<00>setattr<74>saverr|<00>rename<6D>pField<6C>all<6C>replace<63>pdFieldr}rr~r)
rTrcr<><00>project<63> old_ident<6E>attrrZ<00> new_ident<6E>r<>ds
r_<00>update_project<63> ProjectController.update_projectgsW<00><00><17>.<2E>.<2E>w<EFBFBD>:<3A>.<2E>F<><07><1B>M<EFBFBD>M<EFBFBD> <09>"<22><<3C><<3C>><3E>/<2F>/<2F>1<>K<EFBFBD>D<EFBFBD> <13>G<EFBFBD>5<EFBFBD> )<29>2<><0F> <0C> <0C><0E><1B>M<EFBFBD>M<EFBFBD> <09> <14> !<21> a<01><14>Z<EFBFBD>)<29>+<2B>,<2C>3<>3<>J<EFBFBD><17><1D><1D>4N<34>O<> <20><1E><1E>+<2B>+<2B>-<2D>A<EFBFBD><1F>g<EFBFBD>g<EFBFBD>o<EFBFBD>o<EFBFBD>i<EFBFBD>C<>A<EFBFBD>G<EFBFBD><15>F<EFBFBD>F<EFBFBD>H<EFBFBD>.<2E>!<21><1F><1F>,<2C>,<2C>.<2E>A<EFBFBD><1F>g<EFBFBD>g<EFBFBD>o<EFBFBD>o<EFBFBD>i<EFBFBD>C<>A<EFBFBD>G<EFBFBD><15>F<EFBFBD>F<EFBFBD>H<EFBFBD>/<2F><1C><13>S<EFBFBD>:N<>O<>O<><4F> #<23> s<01>#<23><13>S<EFBFBD>Bq<42>r<>r<>"<22> y<01>#<23><13>S<EFBFBD>Bw<42>x<>x<>$<24> a<01>#<23><13>S<EFBFBD>B_<42>`<60>`<60> a<01>s<00>6CE<00>F<03>,F<03>F<03>Fz/deletec<00><><00>[UR[5nUHn[U- n[ U5 M [ SS9$![
an[ SSSS9sSnAs $SnAff=f)Nrlu9项目模版目录可能不存在,可能之前已删除)rornrpu删除成功!)rp)r<00>idsrr|rrr)rTrj<00>identsrK<00>project_media_path<74>es r_<00>delete<74>ProjectController.delete<74>sj<00><00>&<26>d<EFBFBD>h<EFBFBD>h<EFBFBD><07>8<><06><1B>E<EFBFBD>!+<2B>e<EFBFBD>!3<> <1E> <01><16>)<29>*<2A><1C> <1C>$5<>6<>6<><36>%<25> <01>#<23>3<EFBFBD>S<EFBFBD>B}<7D>~<7E>~<7E><> <01>s<00> A<02>
2025-04-29 18:09:00 +08:00
A#<05>
2026-02-05 18:27:04 +08:00
A<05>A#<05>A#z/boardrfc <00><><00>[[US9n[URS5nURR 5nSnSnSnUH<>nURR 5n U R 5n
2025-04-29 18:09:00 +08:00
U RSS9R 5n U RSS9R 5n X<>-
U -
n U S:<3A>aX<>:XaUS- nM<>US- nM<>US- nM<> URR 5nSnSnUHnURS:waUS- nMUS- nM! S/0nURR 5nURUS 'URUS
'UHKn[UR5S-nUSRS US 3URURS .5 MM /nUGHqnS [UR5S-S 3/00S.nUR R 5nUHWnUR"UR$R 5UR&R 5S.nUSRU5 MY UR(R 5nUH<n[UR*S5nUUS;a
SUSU'M,USU==S- ss'M> UR,R 5nUHHnUR.n[UR*S5n U US;a
SUSU 'M8USU ==S- ss'MJ URU5 GMt UR0UR"UURUR[2R4"5UR-
2026-02-05 18:27:04 +08:00
R6S3S.UR8[;UR<5S.UR>UR@URBS.UR 5UUUS.UR 5UUS.S.UUS.$)NrerPr<00>1)<01>passed<65>2<><00>
round_timerUrVu第u轮次)rL<00>start<72>end)rL<00>desings<67> method_demand<6E> method_case)rL<00> demand_count<6E>
case_countr<EFBFBD><00>testTyper<65>r<>u天)u 开始时间u 结束时间u到现在时间)u 负责人u 成员数)u 联系人u电话u邮箱)<04>总数u 已执行u 未执行u 部分执行)r<>u 已闭环u 未闭环)u时间u人员u开发方信息u 用例数u 问题数)rKrLrP<00>
2025-04-29 18:09:00 +08:00
title_info<EFBFBD> time_line<6E>
2026-02-05 18:27:04 +08:00
statistics)"rrr&rP<00>pcFieldr<64><00>countrJ<00> projFieldror<><00> beginTime<6D>endTime<6D>intrYrH<00>dsFieldrL<00>dtField<6C>dcField<6C>rtFieldr<64><00>rcField<6C>testrKr<00>today<61>daysrM<00>lenr4<00> dev_contact<63>dev_contact_phone<6E> dev_email)!rTrfrg<00>step_str<74>case_qs<71> exe_count<6E> noexe_count<6E> partexe_count<6E>case<73>steps<70> steps_count<6E>passed_steps_count<6E>notPassed_steps_count<6E>notExe_steps_count<6E>problems<6D> close_count<6E>
2025-04-29 18:09:00 +08:00
open_count<EFBFBD>problem<65>timers<72>rounds<64>round<6E> round_number<65> data_list<73>
round_dict<EFBFBD>designs<6E>design<67> design_dict<63>demands<64>demand<6E> test_type<70>cases<65>
2026-02-05 18:27:04 +08:00
testDemand<EFBFBD> case_types! r_<00>board<72>ProjectController.board<72>s<><00><00>(<28><07>B<EFBFBD>7<> <0B><1F> <0B> 0<> 0<>&<26>9<><08>
2025-04-29 18:09:00 +08:00
<1E>%<25>%<25>)<29>)<29>+<2B><07><15> <09><17> <0B><19> <0A><1B>D<EFBFBD><18>I<EFBFBD>I<EFBFBD>M<EFBFBD>M<EFBFBD>O<EFBFBD>E<EFBFBD><1F>+<2B>+<2B>-<2D>K<EFBFBD>!&<26><1C><1C>S<EFBFBD><1C>!9<>!?<3F>!?<3F>!A<> <1E>$)<29>L<EFBFBD>L<EFBFBD><03>L<EFBFBD>$<<3C>$B<>$B<>$D<> !<21>!,<2C>!A<>DY<44>!Y<> <1E>!<21>A<EFBFBD>%<25>%<25>4<><1F>1<EFBFBD>$<24>K<EFBFBD>!<21>Q<EFBFBD>&<26>M<EFBFBD><19>Q<EFBFBD><0E> <09><1C> <1F>(<28>(<28>,<2C>,<2C>.<2E><08><17> <0B><16>
<EFBFBD><1F>G<EFBFBD><16>~<7E>~<7E><13>$<24><1A>a<EFBFBD><0F>
<EFBFBD><1B>q<EFBFBD> <20> <0B>  <20><1F><02>#<23><06><1C>#<23>#<23>'<27>'<27>)<29><06>*<2A>4<>4<><06>|<7C><1C>(<28>0<>0<><06>z<EFBFBD><1A><1B>E<EFBFBD><1E>u<EFBFBD>y<EFBFBD>y<EFBFBD>><3E>A<EFBFBD>-<2D>L<EFBFBD> <12><<3C> <20> '<27> '<27><1D>l<EFBFBD>^<5E>6<EFBFBD>2<><1E><1F><1F><1C>}<7D>}<7D>)<0E> <0F><1C><17> <09><1B>E<EFBFBD>$'<27><03>E<EFBFBD>I<EFBFBD>I<EFBFBD><0E><11>(:<3A>';<3B>6<EFBFBD>"B<>r<EFBFBD>df<64>)+<2B>-<2D>J<EFBFBD><1B>m<EFBFBD>m<EFBFBD>'<27>'<27>)<29>G<EFBFBD>!<21><06>"<22>K<EFBFBD>K<EFBFBD>$*<2A>N<EFBFBD>N<EFBFBD>$8<>$8<>$:<3A>"(<28>.<2E>.<2E>"6<>"6<>"8<><12> <0B>
2025-04-29 18:09:00 +08:00
<1B>9<EFBFBD>%<25>,<2C>,<2C>[<5B>9<> "<22><1C>m<EFBFBD>m<EFBFBD>'<27>'<27>)<29>G<EFBFBD>!<21><06>(<28><16><1F><1F>*<2A>E<> <09><1C>J<EFBFBD><EFBFBD>$?<3F>?<3F>=><3E>J<EFBFBD><EFBFBD>/<2F> <09>:<3A><1E><EFBFBD>/<2F> <09>:<3A>a<EFBFBD>?<3F>:<3A> "<22> <1A>M<EFBFBD>M<EFBFBD>%<25>%<25>'<27>E<EFBFBD><1D><04>!<21>Y<EFBFBD>Y<EFBFBD>
<EFBFBD>(<28><1A>)<<3C>)<<3C>j<EFBFBD>I<> <09><1C>J<EFBFBD>}<7D>$=<3D>=<3D>;<<3C>J<EFBFBD>}<7D>-<2D>i<EFBFBD>8<><1E>}<7D>-<2D>i<EFBFBD>8<>A<EFBFBD>=<3D>8<> <1E> <16> <1C> <1C>Z<EFBFBD> (<28>5<1C>:!<21>&<26>&<26><1F>$<24>$<24><1C>%0<>$9<>$9<>$/<2F>$7<>$7<>+/<2F>:<3A>:<3A><<3C>+<2B>:O<>:O<>+O<>*U<>*U<>)V<>VY<56>'Z<><12> "-<2D>!8<>!8<>!$<24>[<5B>%7<>%7<>!8<><12>
2025-04-29 18:09:00 +08:00
"-<2D>!8<>!8<>)<29>;<3B>;<3B>)<29>3<>3<>$<12> &<26>m<EFBFBD>m<EFBFBD>o<EFBFBD>!*<2A>!,<2C>$1<> <12>'<27>n<EFBFBD>n<EFBFBD>.<2E>!,<2C>!+<2B><12>+<0E>6 <20>#<23>A!
<EFBFBD>!
2026-02-05 18:27:04 +08:00
rbz/document_time_showc<00><00>[U5nU$)Nr')rTrf<00>times r_<00>document_time_show<6F>$ProjectController.document_time_show s<00><00><1E>b<EFBFBD>!<21><04><13> rbz/project_info_status/c<00><<00>SSSSSSS.nURU5n[RRUS9nUR 5(a2UR 5R R 5(aSUS'[RRUS9nUR 5(aSUS'[RRUS9nUR 5(aSUS'[RRUS9nUR 5(aSUS'[RRUS9nUR 5(aSUS '[RRUS9n U R 5(aSUS
'[S S US S9$)NF)<06> soft_summary<72>interface_image<67>static_soft_item<65>static_soft_hardware<72>dynamic_soft_item<65>dynamic_soft_hardware<72>r<>Tr<54>r<>r<>r<>r<>r<>rxi Nu 查询成功)rornrjrp) rhrrIrJ<00>exists<74>first<73> data_schemasrrrrrr)
rTrf<00>
all_statusrg<00>soft_summary_qs<71>image_qs<71>static_item_qs<71>static_hardware_qs<71>dynamic_soft_item_qs<71>dynamic_hardware_qss
r_<00>project_info_status<75>%ProjectController.project_info_statuss<><00><00>
"<22>$<24> %<25>$)<29>!&<26>%*<2A> 
<EFBFBD>
2026-02-05 18:27:04 +08:00
<EFBFBD><1B>,<2C>,<2C>R<EFBFBD>0<> <0B>,<2C>4<>4<>;<3B>;<3B>K<EFBFBD>;<3B>P<><0F> <1A> !<21> !<21> #<23> #<23><1E>$<24>$<24>&<26>3<>3<>:<3A>:<3A><<3C><<3C>-1<>
<EFBFBD>><3E>*<2A> <20>(<28>(<28>/<2F>/<2F> <0B>/<2F>D<><08> <13>?<3F>?<3F> <1C> <1C>,0<>J<EFBFBD>(<28> )<29>'<27>/<2F>/<2F>6<>6<>{<7B>6<>K<><0E> <19> <20> <20> "<22> "<22>-1<>J<EFBFBD>)<29> *<2A>/<2F>7<>7<>><3E>><3E>{<7B>><3E>S<><1A> <1D> $<24> $<24> &<26> &<26>15<31>J<EFBFBD>-<2D> .<2E>/<2F>7<>7<>><3E>><3E>{<7B>><3E>S<><1C> <1F> &<26> &<26> (<28> (<28>.2<EFBFBD>J<EFBFBD>*<2A> +<2B>2<>:<3A>:<3A>A<>A<>+<2B>A<>V<><1B> <1E> %<25> %<25> '<27> '<27>26<32>J<EFBFBD>.<2E> /<2F><1B>3<EFBFBD>U<EFBFBD><1A>^<5E>\<5C>\rb<00>datasc<00>`<00>Sn[U[5(aSnO$[U[5(aSnO [SS5e/nUHIn[ UR
2026-02-04 11:24:15 +08:00
UR URS9n[XcU5 URU5 MK [RRU5 g)u<>
批量创建结构化排序数据 (自动类型推断)
Args:
parent_obj: 父级对象,可以是 ProjectSoftSummary 或 Project 的实例
datas (list[DataSchema]): 数据模式对象列表
2026-02-05 18:27:04 +08:00
Nr<EFBFBD>r<>rlu3添加的数据未在系统内,请联系管理员)<03>type<70>fontnote<74>content) <0C>
isinstancerrrrr<>r<>r<>r<>rHrI<00> bulk_create)<07>cls<6C>
parent_objr<EFBFBD><00>
field_namer<EFBFBD>rj<00>new_datas r_<00>bulk_create_data_schemas<61>*ProjectController.bulk_create_data_schemas;s<><00><00><1A>
2026-02-04 11:24:15 +08:00
<EFBFBD> <15>j<EFBFBD>"4<> 5<> 5<>'<27>J<EFBFBD> <17>
<EFBFBD>G<EFBFBD> ,<2C> ,<2C>"<22>J<EFBFBD><1B>C<EFBFBD>!V<>W<> W<><16> <09><19>D<EFBFBD>$<24><19>Y<EFBFBD>Y<EFBFBD><1D><1D><1D><1C> <0C> <0C><0E>H<EFBFBD>
2026-02-05 18:27:04 +08:00
<14>H<EFBFBD>*<2A> 5<> <15> <1C> <1C>X<EFBFBD> &<26><1A> <16><1D><1D>)<29>)<29>)<29>4rbz/soft_summary/c<00><><00>URUR5n[RR US9nUR 5(aTUR 5nURR5R5 URXAR5 g[RRUS9nURXQR5 g<00>Nr<4E>) rhrfrrIrJr<>r<>r<>r<>r<>rrjr)rTr<>rgr<>r<><00>soft_summary_objs r_r<><00>ProjectController.soft_summaryXs<><00><00><1B>,<2C>,<2C>W<EFBFBD>Z<EFBFBD>Z<EFBFBD>8<> <0B>,<2C>4<>4<>;<3B>;<3B>K<EFBFBD>;<3B>P<><0F> <1A> !<21> !<21> #<23> #<23>*<2A>0<>0<>2<>L<EFBFBD> <18> %<25> %<25> )<29> )<29> +<2B> 2<> 2<> 4<> <10> )<29> )<29>,<2C> <0C> <0C> E<> 2<>9<>9<>@<40>@<40><1B>@<40>U<> <1C> <10> )<29> )<29>*:<3A>L<EFBFBD>L<EFBFBD> Irbz/get_soft_summary/c <00>x<00>URU5n[RRUS9nUR 5(ahUR 5nUR R5n[SSUVs/sH'nURURURS.PM) snS9$[SS/S9$s snf<00>Nr<4E>rx<00><>a)r<>r<>r<><00>rornrj<00><>a) rhrrIrJr<>r<>r<>r<>rr<>r<>r<>)rTrfrgr<>r<><00> dataSchem_qs<71>items r_<00>get_soft_summary<72>"ProjectController.get_soft_summaryis<><00><00><1B>,<2C>,<2C>R<EFBFBD>0<> <0B>,<2C>4<>4<>;<3B>;<3B>K<EFBFBD>;<3B>P<><0F> <1A> !<21> !<21> #<23> #<23>*<2A>0<>0<>2<>L<EFBFBD>'<27>4<>4<>8<>8<>:<3A>L<EFBFBD><1F>s<EFBFBD><15>'<27> >(<28>'<27>$<24><1D> <09> <09><1F><<3C><<3C> <20>M<EFBFBD>M<EFBFBD>?<0E>'<27> >(<28>)<29> )<29>
<1C>3<EFBFBD>U<EFBFBD><12><<3C><<3C><> >(s<00>9.B7 z/interface_image/<2F>
dataSchemac<00><><00>URU5n[RRUS9nUR 5(aUR 5 UR X2/5 gr )rhrrIrJr<>r<>r)rTrfrrgr<>s r_<00>post_interface_image<67>&ProjectController.post_interface_imagezsT<00><00><1B>,<2C>,<2C>R<EFBFBD>0<> <0B> <20>(<28>(<28>/<2F>/<2F> <0B>/<2F>D<><08> <13>?<3F>?<3F> <1C> <1C> <14>O<EFBFBD>O<EFBFBD> <1D> <0C>%<25>%<25>k<EFBFBD><<3C>@rbz/get_interface_image/c<00><00>URU5n[RRUS9nUR 5(a=UR 5n[ SSURURURS.S9$[ SSSS9$r )
rhrrIrJr<>r<>rr<>r<>r<>)rTrfrgr<><00> image_objs r_<00>get_interface_image<67>%ProjectController.get_interface_image<67>s<><00><00><1B>,<2C>,<2C>R<EFBFBD>0<> <0B> <20>(<28>(<28>/<2F>/<2F> <0B>/<2F>D<><08> <13>?<3F>?<3F> <1C> <1C> <20><0E><0E>(<28>I<EFBFBD><1F>s<EFBFBD><15>!<21><0E><0E>$<24>,<2C>,<2C>%<25>.<2E>.<2E>><0E><0F> <0F>
<1C>3<EFBFBD>U<EFBFBD><14>><3E>>rb<00>categoryc<00>8<00>[[[[S.nX!$)N)u静态软件项u静态硬件项u动态软件项u动态硬件项)rrrr)rr<00>mapDicts r_<00>get_model_from_category<72>)ProjectController.get_model_from_category<72>s"<00><00> .<2E>1<>/<2F>3<> 
<EFBFBD><07> <17> <20> rbz/get_static_dynamic_items/c<00><00>URU5nURU5RRUS9nUR 5(a2UR 5n[ SSURURS.S9$[ SSSS9$)Nr<4E>rxr)<02>tabler<65>rr) rhr rIrJr<>r<>rr#r<>)rTrfrrg<00>item_qs<71>item_objs r_<00>get_static_dynamic_items<6D>*ProjectController.get_static_dynamic_items<6D>s}<00><00><1A>,<2C>,<2C>R<EFBFBD>0<> <0B><16>.<2E>.<2E>x<EFBFBD>8<>@<40>@<40>G<>G<>P[<5B>G<>\<5C><07> <12>><3E>><3E> <1B> <1B><1E>}<7D>}<7D><EFBFBD>H<EFBFBD><1F>s<EFBFBD><15>x<EFBFBD>~<7E>~<7E>ck<63>ct<63>ct<63>=u<>v<> v<><1B>3<EFBFBD>U<EFBFBD><14>><3E>>rbz/post_static_dynamic_item/c<00>^<00>[U5 URUR5nURUR5nUR
R US9nUR5(aUR5 UR
RX!RURS9 g)Nr<4E>)r<>r#r<>) <0C>printrhrfr rrIrJr<>r<>rr#r<>)rTrjrg<00>modelr$s r_<00>post_static_dynamic_item<65>*ProjectController.post_static_dynamic_item<65>s<><00><00> <0E>d<EFBFBD> <0B><1A>,<2C>,<2C>T<EFBFBD>W<EFBFBD>W<EFBFBD>5<> <0B><14>,<2C>,<2C>T<EFBFBD>]<5D>]<5D>;<3B><05><17>-<2D>-<2D>&<26>&<26>{<7B>&<26>;<3B><07> <12>><3E>><3E> <1B> <1B> <13>N<EFBFBD>N<EFBFBD> <1C> <0A> <0A> <0A><1C><1C>[<5B>
<EFBFBD>
<EFBFBD>T<EFBFBD>]<5D>]<5D><1C>[rb<00>N)*<2A>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__r rErrrrrr r`r <00>atomicr<63>rh<00>postr!r<><00>putr<74>r<>r"r<>r<>r<><00> classmethod<6F>listr$rr#r<>rrr<00>strr r&r%r+<00>__static_attributes__r-rbr_r/r/sC<00><00>
<EFBFBD>Y<EFBFBD>Y<EFBFBD>x<EFBFBD>$<24>'<<3C>"=<3D>><3E> <0A>l<EFBFBD><1B>:?<3F><03>*<2A>#<12>$7<>#<12><1C>?<3F>#<12>J <0B>Y<EFBFBD>Y<EFBFBD>.<2E>9N<39>O<><10><17><17><1B>C<EFBFBD><1B><18>P<01><1B> <0B>Z<EFBFBD>Z<EFBFBD><07><18><10><17><17>o<01>#5<>o<01><18><19>o<01>0 <0B>Y<EFBFBD>Y<EFBFBD>%<25>&<26><10><17><17>P<01><13>P<01>7I<37>P<01><18>'<27>P<01>8 <0B>\<5C>\<5C>)<29><1C><10><17><17> 7<><<3C> 7<><18><1D> 7<> <0B>Y<EFBFBD>Y<EFBFBD>x<EFBFBD><18><10><17><17>s
<EFBFBD><03>s
<EFBFBD><18><19>s
<EFBFBD>l <0B>Y<EFBFBD>Y<EFBFBD>$<24>%<25><10><17><17><14>S<EFBFBD><14><18>&<26><14>
2026-02-05 18:27:04 +08:00
 <0B>Y<EFBFBD>Y<EFBFBD>&<26>'<27><10><17><17>%]<01>c<EFBFBD>%]<01><18>(<28>%]<01>N<11>5<><14>j<EFBFBD>9I<39>5<><11>5<>8 <0B>Z<EFBFBD>Z<EFBFBD> <20>!<21><10><17><17> J<01>$5<> J<01><18>"<22> J<01> <0B>Y<EFBFBD>Y<EFBFBD>#<23>d<EFBFBD>:<3A>.><3E>?<3F><10><17><17> =<3D>3<EFBFBD> =<3D><18>@<01> =<3D> <0B>Z<EFBFBD>Z<EFBFBD>#<23>$<24><10><17><17>A<01>s<EFBFBD>A<01>
<EFBFBD>A<01><18>%<25>A<01> <0B>Y<EFBFBD>Y<EFBFBD>&<26><1A><<3C><10><17><17> ?<3F>c<EFBFBD> ?<3F><18>=<3D> ?<3F><11>!<21>s<EFBFBD>!<21><11>!<21> <0B>Y<EFBFBD>Y<EFBFBD>+<2B>,<2C>?<3F>3<EFBFBD>?<3F>#<23>?<3F>-<2D>?<3F> <0B>Z<EFBFBD>Z<EFBFBD>,<2C>-<2D><10><17><17>\<01>-><3E>\<01><18>.<2E>\rbr/N)?<3F>pathlibr<00>datetimer<00>typingr<00>shutilrr<00>django.shortcutsr<00> django.dbr <00> ninja_extrar
r r <00>ninja_extra.permissionsr <00>ninja_jwt.authenticationr<00>apps.user.modelsr<00>utils.chen_paginationr<00>ninja.paginationr<00> ninja.errorsr<00>ninjar<00>utils.chen_responser<00>utils.chen_crudrr<00>apps.project.modelsrrrrrrrr<00>apps.project.schemas.projectrr r!r"r#r$r%<00>
utils.utilr&<00>apps.project.tool.timeListr(<00>utils.smallTools.interfaceToolsr)<00>cwdr|r{r/r-rbr_<00><module>rOs<><00><01><18><19><17>#<23>.<2E>!<21>=<3D>=<3D>3<>,<2C>"<22>.<2E>%<25>"<22><17>,<2C>8<><19><19><19>C<01>C<01>C<01>#<23>5<>@<40> <11>X<EFBFBD>X<EFBFBD>Z<EFBFBD>'<27> !<21>
<EFBFBD><19>X<EFBFBD>X<EFBFBD>Z<EFBFBD>"6<>6<><12><0F>%<25>G<EFBFBD>I<EFBFBD>O<EFBFBD>CT<43>\m<>[n<>o<>S\<01><0E>S\<01>p<01>S\rb