HydroOJ 从入门到入土(20)已通过的题目显示 AC 代码

news/2024/10/5 11:45:02/文章来源:https://www.cnblogs.com/bowen404/p/18275579

定期的代码汇总分析和整理是必要的。

个人面板里,通过的题目,直接链接到对应的AC记录。用处就是可以按人汇总,便于学生自己整理,以及老师分析学生。

权限:看不了别人代码的人,依然看不了别人代码。

效果

修改后端

进入 user.ts 文件 435 行左右:

cd /usr/local/share/.config/yarn/global/node_modules/hydrooj/src/handler
vi user.ts +435

class UserDetailHandler 类中,this.response.bodythis.response.template = 'user_detail.html'; 中间加入如下代码,并在 this.response.body 中加入 psdict,

		const psdict = {};if (this.user.hasPriv(PRIV.PRIV_USER_PROFILE)) {const domainIds = Array.from(new Set(pdocs.map((i) => i.domainId)));await Promise.all(domainIds.map((did) =>problem.getListStatus(did, uid,pdocs.filter((i) => i.domainId === did).map((i) => i.docId),).then((res) => Object.assign(psdict, res))),);}this.response.body = {isSelfProfile, udoc, sdoc, pdocs, tags, tdocs, psdict,};

修改前端

在前端插件的 templates 中,从源代码中复制一个user_detail.html,114 行左右。

cd ~/.hydro/addons/addon/templates
cp /usr/local/share/.config/yarn/global/node_modules/@hydrooj/ui-default/templates/user_detail.html user_detail.html
vi user_detail.html +114

主要修改内容:在遍历 pdocs 过程中,插入 ac 代码链接,参考题库页面的实现进行修改。

{% for pdoc in pdocs %}{% set psdoc = psdict[pdoc.domainId + '#' + pdoc.docId] %}<li>{{ problem.render_problem_title(pdoc, show_tags=false, small=true) }}{% macro render_status_td(rdoc, rid_key='_id', class='', allDomain=false, short=false) %}<a href="{{ url('record_detail', rid=rdoc[rid_key], domainId=rdoc.domainId) if allDomain else url('record_detail', rid=rdoc[rid_key]) }}"class="record-status--text {{ model.builtin.STATUS_CODES[rdoc.status] }}">{% if typeof(rdoc['score']) == 'number' %}<span style="color: {{ utils.status.getScoreColor(rdoc.score|default(0)) }}">code</span>{% endif %}</a>{% if rdoc.status == STATUS.STATUS_JUDGING %}<div class="col--status__progress" style="width: {{ rdoc['progress']|default(50)|int }}%"></div>{% endif %}
{% endmacro %}{% if psdoc['rid'] %}({{ render_status_td(psdoc, rid_key='rid', class="edit-mode-hide", allDomain=pdoc.domainId!==handler.args.domainId) }}){% else %}(){% endif %}</li>{% endfor %}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/733665.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟集成电路设计系列博客——8.2.2 LC振荡器

8.2.2 LC振荡器 LC振荡器是调谐振荡器的一个例子。环形振荡器使用有源放大器级来提供环路不稳定性所需要的180相移,调谐振荡器向反馈环路中插入调谐(谐振)电路来提供相移。在LC振荡器的例子中,谐振是由一个并联的LC电路实现的。 一个简单的LC振荡器如下图(a)所示,其小信号…

安装编译ffmpeg

原文链接 安装MSYS2msys2是一款跨平台编译套件,它模拟linux编译环境,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译运行。类似的跨平台编译套件有:msys,cygwin,mingw 优势: 相对于 cygwin 和 msys 等环境,它支持 pacman 包管理器,这…

LLM并行训练4-megascale论文学习

字节megascale论文学习笔记算法优化 并行注意力机制 \[串行版本: y = x + MLP(LayerNorm(x + Attention(LayerNorm(x)))) \]\[并行版本: y = x + MLP(LayerNorm(x)) + Attention(LayerNorm(x)))) \]乍一看确实不是等价的, attention那块的后置mlp去哪了..这个其实没有理论证明,…

【Linux系列】centos搭建本地源

开始备份:查看光盘挂载路径:❗转义符关闭防火墙:测试一下:🎉Congratulations on successfully switching your local source!

1.Java基础

路线图:https://www.bilibili.com/read/cv9965357/JAVA入门 java SE/EE/ME jdk: java development kit java开发者工具包(安装路径不要包含中文与空格) 通过oracle官网下载:http://www.oracle.com 验证JDK安装成功:bin下的java.exe执行工具,javac.exe编译工具是否可用,…

Linux 提权-Docker 容器

本文通过 Google 翻译 Docker Breakout – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 什么是 Docker ? 2 寻找 Docker 权限2.1 升级 Shell 到完整 TTY 2.2 手动枚举 Docker 组中的用户 2.3 …

程序员如何提升个人技术影响力

此文转发于得物技术,如果侵权,联系删除 前言 都说程序员的成长是码出来的,此话不假。但如果既会写代码,还会写文章,还能讲PPT,那你离影响力还会远吗? 本文是针对每一个技术同学都适用。我将从行业技术大会主编的角色告诉你,如何打造自己的技术影响力,有哪些通用的手段…

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版) 发…

第三次blog总结

一、前言:家居强电电路模拟程序-3: 1.知识点:考察类间关系的设计。 2.题量:1道迭代难题。 3.难度:这次在上次的基础上添加了互斥开关和窗帘,有一定难度,需要考虑互斥开关的设计。家居强电电路模拟程序-4: 1.知识点:考察类间关系的设计。 2.题量:1道迭代难题。 3.难度…

windows下搭建lisp环境

因看了《黑客与画家》,想要跟着作者的《ANSI Common Lisp》学习一下lisp,记录一下lisp环境安装过程,及中间出现的问题。 lisp环境选择:emac+slime+clisp,在windows 11下安装。 1.安装Emacs Emacs官网:GNU Emacs - GNU Project1.1 进入官网,选择windows 1.2 选择 main GN…

深度学习--RBM(Restricted Boltzmann Machine)受限玻尔兹曼机-算法--91

目录1. 原理2. 结构 1. 原理 参考: https://bacterous.github.io/2018/05/22/Restricted Boltzmann Machine/ 受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是G.Hinton教授的一宝。 Hinton教授是深度学习的开山鼻祖,也正是他在2006年的关于深度信念网络DBN的工作,以及…

【WPF】根据选项值显示不同的编辑控件(使用DataTemplateSelector)

接了一个小杂毛项目,大概情形是这样的:ZWT先生开的店是卖拆片机的,Z先生不仅卖机器,还贴心地提供一项服务:可以根据顾客需要修改两个电机的转向和转速(机器厂家有给SDK的,但Z自己不会写程序)。厂家有配套一个调节器,调整参数时连接到拆片机的串口上,然后旋转按钮可以…