Browse Source

update activity

tags/v1.22.9.2^2
chenshihai 3 years ago
parent
commit
4b2f8e74dd
9 changed files with 108 additions and 44 deletions
  1. +5
    -0
      options/locale/locale_en-US.ini
  2. +5
    -0
      options/locale/locale_zh-CN.ini
  3. +23
    -2
      public/home/home.js
  4. +13
    -13
      templates/reward/point/rule.tmpl
  5. +10
    -0
      templates/user/dashboard/feeds.tmpl
  6. +2
    -2
      web_src/vuepages/const/index.js
  7. +3
    -0
      web_src/vuepages/langs/config/en-US.js
  8. +3
    -0
      web_src/vuepages/langs/config/zh-CN.js
  9. +44
    -27
      web_src/vuepages/pages/reward/point/utils.js

+ 5
- 0
options/locale/locale_en-US.ini View File

@@ -3074,6 +3074,11 @@ task_createmodel=`created new model <a href="%s/modelmanage/show_model_info?name
task_gputrainjob=`created CPU/GPU training task <a href="%s/cloudbrain/train-job/%s">%s</a>`
task_c2netnputrainjob=`created NPU training task <a href="%s/grampus/train-job/%s">%s</a>`
task_c2netgputrainjob=`created CPU/GPU training task <a href="%s/grampus/train-job/%s">%s</a>`
binded_wechat=binded WeChat
dataset_recommended=`created dataset <a href="%s/datasets">%s</a> was set as recommended dataset`
create_image=`committed image <span style="font-weight:bold;">%s</span>`
image_recommended=`committed image <span style="font-weight:bold;">%s</span> was set as recommended image`
update_user_avatar=updated avatar

[tool]
ago = %s ago


+ 5
- 0
options/locale/locale_zh-CN.ini View File

@@ -3091,6 +3091,11 @@ task_createmodel=`导入了新模型 <a href="%s/modelmanage/show_model_info?nam
task_gputrainjob=`创建了CPU/GPU类型训练任务 <a href="%s/cloudbrain/train-job/%s">%s</a>`
task_c2netnputrainjob=`创建了NPU类型训练任务 <a href="%s/grampus/train-job/%s">%s</a>`
task_c2netgputrainjob=`创建了CPU/GPU类型训练任务 <a href="%s/grampus/train-job/%s">%s</a>`
binded_wechat=绑定微信
dataset_recommended=`创建的数据集<a href="%s/datasets">%s</a>被设置为推荐数据集`
create_image=`提交了镜像<span style="font-weight:bold;">%s</span>`
image_recommended=`提交的镜像<span style="font-weight:bold;">%s</span>被设置为推荐镜像`
update_user_avatar=更新了头像

[tool]
ago=%s前


+ 23
- 2
public/home/home.js View File

@@ -163,6 +163,21 @@ document.onreadystatechange = function () {
html += recordPrefix + actionName;
html += " <a href=\"" + getTaskLink(record) + "\" rel=\"nofollow\">" + record.RefName + "</a>"
}
else if(record.OpType == "35"){
var datasetLink = '';
actionName.replace('{dataset}', datasetLink);
html += recordPrefix + actionName;
}
else if(record.OpType == "36"){
var imageLink = '';
actionName.replace('{image}', imageLink);
html += recordPrefix + actionName;
}
else if(record.OpType == "37"){
var imageLink = '';
actionName.replace('{image}', imageLink);
html += recordPrefix + actionName;
}
else{
continue;
}
@@ -354,7 +369,10 @@ var actionNameZH={
"30":"导入了新模型",
"31":"创建了CPU/GPU类型训练任务",
"32":"创建了NPU类型训练任务",
"33":"创建了CPU/GPU类型训练任务"
"33":"创建了CPU/GPU类型训练任务",
"35":"创建的数据集 {dataset} 被设置为推荐数据集",
"36":"提交了镜像 {image}",
"37":"提交的镜像 {image} 被设置为推荐镜像",
};

var actionNameEN={
@@ -382,7 +400,10 @@ var actionNameEN={
"30":" created new model",
"31":" created CPU/GPU type training task",
"32":" created NPU type training task",
"33":" created CPU/GPU type training task"
"33":" created CPU/GPU type training task",
"35":" created dataset {dataset} was set as recommended dataset",
"36":"committed image {image}",
"37":"committed image {image} was set as recommended image",
};

var repoAndOrgZH={


+ 13
- 13
templates/reward/point/rule.tmpl View File

@@ -27,79 +27,79 @@
<th style="width:200px;">上限值</th>
<th>奖励细节澄清</th>
</tr>
<tr key="34">
<tr key="BindWechat">
<td class="t-center">完成微信扫码验证</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">累计</span>积分获取上限<span class="limit"> - </span></td>
<td>1、首次完成微信扫码验证,即获取积分。<br>2、同个账号,更换微信号码再验证不重复给积分。<br>3、同一个微信,绑定第一个账号时奖励积分,下次绑定其他账号时不再奖励。</td>
</tr>
<tr key="1">
<tr key="CreatePublicRepo">
<td class="t-center">创建或Fork公开项目</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td>请注意项目质量,请勿复制粘贴或者重复公开项目,任何非常规的以公开项目去获取积分的行为将被认定为积分舞弊,将扣除所有积分。</td>
</tr>
<tr key="7">
<tr key="CreatePullRequest">
<td class="t-center">每日提出PR</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td></td>
</tr>
<tr key="40">
<tr key="PushCommits">
<td class="t-center">每日commit</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td>通过前台界面和后台命令行方式commit,都可获得奖励积分。</td>
</tr>
<tr key="6">
<tr key="CreateIssue">
<td class="t-center">每日提出任务</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td></td>
</tr>
<tr key="10">
<tr key="CommentIssue">
<td class="t-center">发表评论</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td>禁止空评论或评论后马上删除等非正常获取积分的方式,一经发现将扣除所有积分。</td>
</tr>
<tr key="24">
<tr key="UploadAttachment">
<td class="t-center">上传数据集文件</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td>请注意数据集质量,请勿复制粘贴或者重复公开数据集,任何非常规的以公开数据集去获取积分的行为将被认定为积分舞弊,将扣除所有积分。</td>
</tr>
<tr key="36">
<tr key="DatasetRecommended">
<td class="t-center">数据集被平台推荐</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td>仅统计属于个人的数据集,属于组织的数据集暂不统计。</td>
</tr>
<tr key="30">
<tr key="CreateNewModelTask">
<td class="t-center">导入新模型</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td>请注意模型质量,请勿重复导入相同模型,任何非常规的以导入新模型去获取 积分的行为将被认定为积分舞弊,将扣除所有积分。</td>
</tr>
<tr key="35">
<tr key="CreateCloudbrainTask">
<td class="t-center">每日运行云脑任务</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td> 每日运行调试、训练、推理、评测中任何一种任务,即可获得。</td>
</tr>
<tr key="37">
<tr key="CreateImage">
<td class="t-center">提交新公开镜像</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td></td>
</tr>
<tr key="38">
<tr key="ImageRecommend">
<td class="t-center">镜像被平台推荐</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">每日</span>积分获取上限<span class="limit"> - </span></td>
<td></td>
</tr>
<tr key="39">
<tr key="ChangeUserAvatar">
<td class="t-center">首次更换头像</td>
<td class="t-center point">-</td>
<td class="t-center"><span class="typ">累计</span>积分获取上限<span class="limit"> - </span></td>


+ 10
- 0
templates/user/dashboard/feeds.tmpl View File

@@ -90,6 +90,16 @@
{{$.i18n.Tr "action.task_c2netnputrainjob" .GetRepoLink .Content .RefName | Str2html}}
{{else if eq .GetOpType 33}}
{{$.i18n.Tr "action.task_c2netgputrainjob" .GetRepoLink .Content .RefName | Str2html}}
{{else if eq .GetOpType 34}}
{{$.i18n.Tr "action.binded_wechat"}}
{{else if eq .GetOpType 35}}
{{$.i18n.Tr "action.dataset_recommended" .GetRepoLink | Str2html}}
{{else if eq .GetOpType 36}}
{{$.i18n.Tr "action.create_image" .GetRepoLink | Str2html}}
{{else if eq .GetOpType 37}}
{{$.i18n.Tr "action.image_recommended" .GetRepoLink | Str2html}}
{{else if eq .GetOpType 38}}
{{$.i18n.Tr "action.update_user_avatar"}}
{{end}}
</p>
{{if or (eq .GetOpType 5) (eq .GetOpType 18)}}


+ 2
- 2
web_src/vuepages/const/index.js View File

@@ -3,8 +3,8 @@ import { i18n } from '~/langs';
export const SOURCE_TYPE = [{ k: 'ACCOMPLISH_TASK', v: i18n.t('accomplishTask') }, { k: 'ADMIN_OPERATE', v: i18n.t('adminOperate') }, { k: 'RUN_CLOUDBRAIN_TASK', v: i18n.t('runCloudBrainTask') }];
export const CONSUME_STATUS = [{ k: 'OPERATING', v: i18n.t('operating') }, { k: 'SUCCEEDED', v: i18n.t('succeeded') }];
export const POINT_ACTIONS = [
{ k: 1, v: i18n.t('createPublicProject') }, { k: 6, v: i18n.t('dailyPutforwardTasks') }, { k: 7, v: i18n.t('dailyPR') }, { k: 10, v: i18n.t('comment') }, { k: 24, v: i18n.t('uploadDatasetFile') }, { k: 30, v: i18n.t('importNewModel') }, { k: 34, v: i18n.t('completeWechatCodeScanningVerification') },
{ k: 35, v: i18n.t('dailyRunCloudbrainTasks') }, { k: 36, v: i18n.t('datasetRecommendedByThePlatform') }, { k: 37, v: i18n.t('submitNewPublicImage') }, { k: 38, v: i18n.t('imageRecommendedByThePlatform') }, { k: 39, v: i18n.t('firstChangeofAvatar') }, { k: 40, v: i18n.t('dailyCommit') },
{ k: 'CreatePublicRepo', v: i18n.t('createPublicProject') }, { k: 'CreateIssue', v: i18n.t('dailyPutforwardTasks') }, { k: 'CreatePullRequest', v: i18n.t('dailyPR') }, { k: 'CommentIssue', v: i18n.t('comment') }, { k: 'UploadAttachment', v: i18n.t('uploadDatasetFile') }, { k: 'CreateNewModelTask', v: i18n.t('importNewModel') }, { k: 'BindWechat', v: i18n.t('completeWechatCodeScanningVerification') },
{ k: 'CreateCloudbrainTask', v: i18n.t('dailyRunCloudbrainTasks') }, { k: 'DatasetRecommended', v: i18n.t('datasetRecommendedByThePlatform') }, { k: 'CreateImage', v: i18n.t('submitNewPublicImage') }, { k: 'ImageRecommend', v: i18n.t('imageRecommendedByThePlatform') }, { k: 'ChangeUserAvatar', v: i18n.t('firstChangeofAvatar') }, { k: 'PushCommits', v: i18n.t('dailyCommit') },
];
export const JOB_TYPE = [{ k: 'DEBUG', v: i18n.t('debugTask') }, { k: 'TRAIN', v: i18n.t('trainTask') }, { k: 'INFERENCE', v: i18n.t('inferenceTask') }, { k: 'BENCHMARK', v: i18n.t('benchmarkTask') }];



+ 3
- 0
web_src/vuepages/langs/config/en-US.js View File

@@ -69,6 +69,9 @@ const en = {
setAsRecommendedImage: ' was set as recommended image',
updatedAvatar: 'updated avatar',
pushedBranch: 'pushed to {branch} at ',
deleteBranch: 'deleted branch {branch} from {repo}',
pushedTag: ' pushed tag {tag} to ',
deleteTag: ' deleted tag {tag} from {repo}',
dailyMaxTips: `can't get full points when reach the daily upper limit`,
memory: 'Memory',
sharedMemory: 'Shared Memory',


+ 3
- 0
web_src/vuepages/langs/config/zh-CN.js View File

@@ -69,6 +69,9 @@ const zh = {
setAsRecommendedImage: '被设置为推荐镜像',
updatedAvatar: '更新了头像',
pushedBranch: '推送了{branch}分支代码到',
deleteBranch: '从{repo}删除分支{branch}',
pushedTag: '推送了标签{tag}到',
deleteTag: '从{repo}删除了标签{tag}',
dailyMaxTips: '达到每日上限积分,不能拿满分',
memory: '内存',
sharedMemory: '共享内存',


+ 44
- 27
web_src/vuepages/pages/reward/point/utils.js View File

@@ -79,7 +79,7 @@ export const getRewardPointRecordInfo = (record) => {
duration: record?.Cloudbrain?.Duration || '--',
taskName: record?.Cloudbrain?.DisplayJobName || '--',
taskId: record?.Cloudbrain?.ID,
action: record?.Action?.OpType ? getPointAction(record.Action.OpType) : '--',
action: record?.Action?.TaskType ? getPointAction(record.Action.TaskType) : '--',
remark: record.Remark,
amount: record.Amount,
};
@@ -87,49 +87,72 @@ export const getRewardPointRecordInfo = (record) => {
if (record.SourceType === 'ADMIN_OPERATE') {
out.remark = record.Remark;
} else if (record.SourceType === 'ACCOMPLISH_TASK') {
switch (record?.Action?.OpType) {
case 1: // 创建公开项目 - 创建了项目OpenI/aiforge
switch (record?.Action?.TaskType) {
case 'CreatePublicRepo': // 创建公开项目 - 创建了项目OpenI/aiforge
out.remark = `${i18n.t('createdRepository')}<a href="${record.Action.RepoLink}" rel="nofollow">${record.Action.ShortRepoFullDisplayName}</a>`;
break;
case 6: // 每日提出任务 - 创建了任务PCL-Platform.Intelligence/AISynergy#19
case 'CreateIssue': // 每日提出任务 - 创建了任务PCL-Platform.Intelligence/AISynergy#19
out.remark = `${i18n.t('openedIssue')}<a href="${record.Action.RepoLink}/issues/${record.Action.IssueInfos[0]}" rel="nofollow">${record.Action.ShortRepoFullDisplayName}#${record.Action.IssueInfos[0]}</a>`;
break;
case 7: // 每日提出PR - 创建了合并请求OpenI/aiforge#1
case 'CreatePullRequest': // 每日提出PR - 创建了合并请求OpenI/aiforge#1
out.remark = `${i18n.t('createdPullRequest')}<a href="${record.Action.RepoLink}/pulls/${record.Action.IssueInfos[0]}" rel="nofollow">${record.Action.ShortRepoFullDisplayName}#${record.Action.IssueInfos[0]}</a>`;
break;
case 10: // 发表评论 - 评论了任务PCL-Platform.Intelligence/AISynergy#19
case 'CommentIssue': // 发表评论 - 评论了任务PCL-Platform.Intelligence/AISynergy#19
out.remark = `${i18n.t('commentedOnIssue')}<a href="${record.Action.CommentLink}" rel="nofollow">${record.Action.ShortRepoFullDisplayName}#${record.Action.IssueInfos[0]}</a>`;
break;
case 24: // 上传数据集文件 - 上传了数据集文件MMISTData.zip
case 'UploadAttachment': // 上传数据集文件 - 上传了数据集文件MMISTData.zip
out.remark = `${i18n.t('uploadDataset')}<a href="${record.Action.RepoLink}/datasets" rel="nofollow">${record.Action.RefName}</a>`;
break;
case 30: // 导入新模型 - 导入了新模型resnet50_qx7l
case 'CreateNewModelTask': // 导入新模型 - 导入了新模型resnet50_qx7l
out.remark = `${i18n.t('createdNewModel')}<a href="${record.Action.RepoLink}/modelmanage/show_model_info?name=${record.Action.RefName}" rel="nofollow">${record.Action.RefName}</a>`;
break;
case 34: // 完成微信扫码验证 - 首次绑定微信奖励
case 'BindWechat': // 完成微信扫码验证 - 首次绑定微信奖励
out.remark = `${i18n.t('firstBindingWechatRewards')}`;
break;
case 35: // 每日运行云脑任务 - 创建了(CPU/GPU/NPU)类型(调试/训练/推理/评测)任务tangl202204131431995
case 'CreateCloudbrainTask': // 每日运行云脑任务 - 创建了(CPU/GPU/NPU)类型(调试/训练/推理/评测)任务tangl202204131431995
out.remark = `${i18n.t('created')}${record.Action?.Cloudbrain?.ComputeResource}${i18n.t('type')}${getJobType(record.Action?.Cloudbrain?.JobType)} <a href="${getJobTypeLink(record, 'INCREASE')}" rel="nofollow">${record.Action.RefName}</a>`;
break;
case 36: // 数据集被平台推荐 - 数据集XXX被设置为推荐数据集
case 'DatasetRecommended': // 数据集被平台推荐 - 数据集XXX被设置为推荐数据集
out.remark = `${i18n.t('dataset')}<a href="${record.Action.RepoLink}/datasets" rel="nofollow">${record.Action.Content && record.Action.Content.split('|')[1]}</a>${i18n.t('setAsRecommendedDataset')}`;
break;
case 37: // 提交新公开镜像 - 提交了镜像jiangxiang_ceshi_tang03
case 'CreateImage': // 提交新公开镜像 - 提交了镜像jiangxiang_ceshi_tang03
out.remark = `${i18n.t('committedImage')}<span style="font-weight:bold;">${record.Action.Content && record.Action.Content.split('|')[1]}</span>`;
break;
case 38: // 镜像被平台推荐 - 镜像XXX被设置为推荐镜像
case 'ImageRecommend': // 镜像被平台推荐 - 镜像XXX被设置为推荐镜像
out.remark = `${i18n.t('image')}<span style="font-weight:bold;">${record.Action.Content && record.Action.Content.split('|')[1]}</span>${i18n.t('setAsRecommendedImage')}`;
break;
case 39: // 首次更换头像 - 更新了头像
case 'ChangeUserAvatar': // 首次更换头像 - 更新了头像
out.remark = `${i18n.t('updatedAvatar')}`;
break;
case 40: // 每日commit - 推送了xxxx分支的代码到OpenI/aiforge
const words = record.Action.RefName.split('/');
const branch = words[words.length - 1];
out.remark = `${i18n.t('pushedBranch', {
branch: `<a href="${record.Action.RepoLink}/src/branch/${branch}" rel="nofollow">${branch}</a>`
})}<a href="${record.Action.RepoLink}" rel="nofollow">${record.Action.ShortRepoFullDisplayName}</a>`;
case 'PushCommits': // 每日commit - 推送了xxxx分支的代码到OpenI/aiforge
const opType = record.Action.OpType;
if (opType == 5) {
const words = record.Action.RefName.split('/');
const branch = words[words.length - 1];
out.remark = `${i18n.t('pushedBranch', {
branch: `<a href="${record.Action.RepoLink}/src/branch/${branch}" rel="nofollow">${branch}</a>`
})}<a href="${record.Action.RepoLink}" rel="nofollow">${record.Action.ShortRepoFullDisplayName}</a>`;
} else if (opType == 9) {
const words = record.Action.RefName.split('/');
const tag = words[words.length - 1];
out.remark = `${i18n.t('pushedTag', {
tag: `<a href="${record.Action.RepoLink}/src/tag/${tag}" rel="nofollow">${tag}</a>`
})}<a href="${record.Action.RepoLink}" rel="nofollow">${record.Action.ShortRepoFullDisplayName}</a>`;
} else if (opType == 16) {
const words = record.Action.RefName.split('/');
const tag = words[words.length - 1];
out.remark = `${i18n.t('deleteTag', {
repo: `<a href="${record.Action.RepoLink}" rel="nofollow">${record.Action.ShortRepoFullDisplayName}</a>`,
tag: tag,
})}`;
} else if (opType == 17) {
const words = record.Action.RefName.split('/');
const branch = words[words.length - 1];
out.remark = `${i18n.t('deleteBranch', {
repo: `<a href="${record.Action.RepoLink}" rel="nofollow">${record.Action.ShortRepoFullDisplayName}</a>`,
branch: branch,
})}`;
}
break;
default:
break;
@@ -147,13 +170,7 @@ export const getRewardPointRecordInfo = (record) => {
} else if (record.SourceType === 'ACCOMPLISH_TASK') {
//
} else if (record.SourceType === 'RUN_CLOUDBRAIN_TASK') {
out.taskName = `<a href="${getJobTypeLink(record, 'DECREASE')}" rel="nofollow">${record?.Cloudbrain?.DisplayJobName}</a>`;
// if (record?.Cloudbrain?.ComputeResource === 'CPU/GPU') {
// const resourceSpec = record?.Cloudbrain?.ResourceSpec?.ResourceSpec;
// out.remark = `【${getJobType(record?.Cloudbrain?.JobType)}】【${record?.Cloudbrain?.ComputeResource}】【GPU: ${resourceSpec?.gpu}, CPU: ${resourceSpec?.cpu}, ${i18n.t('memory')}: ${(resourceSpec?.memMiB / 1024).toFixed(2)}GB, ${i18n.t('sharedMemory')}: ${(resourceSpec?.shareMemMiB / 1024).toFixed(2)}GB】`;
// } else {
// out.remark = `【${getJobType(record?.Cloudbrain?.JobType)}】【${record?.Cloudbrain?.ComputeResource}】【${record?.Cloudbrain?.ResourceSpec.FlavorInfo.desc}】`;
// }
out.taskName = `<a href="${getJobTypeLink(record, 'DECREASE')}" rel="nofollow">${record?.Cloudbrain?.DisplayJobName}</a>`;
const resourceSpec = record?.Cloudbrain?.ResourceSpec;
if (resourceSpec) {
resourceSpec.workServerNumber = record?.Cloudbrain?.WorkServerNumber || 1;


Loading…
Cancel
Save