Указывать для проекта доверительные свойства и находить подходящие лица #65

Closed
opened 2 years ago by redex2000 · 2 comments
Owner

Деловая цель

Для того, чтобы общественные проекты могли указывать свои потребности в ресурсов/компетенций и находить доверительные свойства для себя

Критерии приёмки

  • В проекте, в настройках, после поля "Описание", можно указывать потребности : ресурсы, в виде textarea
  • В проекте, в настройках, после поля "Описание", можно указывать потребности: компетенции, в виде textarea
  • Каждое доверительное свойство вводится с префиксом - [ ], например:
# Инструмент
### Электроинструмент
- [ ] молоток
- [ ] гвозди
  • В проекте, в настройках, после поля Сайт, выводить поле LocationCoordinate (как у личности)
  • Должны выводиться вкладки "Ресурсы" и "Компетенции", при просмотре проекта, между вкладками "Описание" и "Задачи"
  • Если поле "Ресурсы" пустое, то вкладка "Ресурсы" НЕ отображается
  • Если поле "Компетении" пустое, то вкладка "Компетении" НЕ отображается
  • При переходе на вкладку "Ресурсы" должны выводится сохранённые ресурсы
  • При переходе на вкладку "Компетенции" должны выводится сохранённые компетенции
  • При отображении ресурса возле каждого ресурса появляется возможность его поиска в виде ссылки [найти](https://...)
  • При отображении компетенции возле каждой компетенции появляется возможность её поиска в виде ссылки [найти](https://...)
  • При нажатии на ссылку происходит поиск нужного доверительного свойства, по возможности, в отдельной вкладке, например
  • Если доверительное свойство найдено, то ставится галочка и ссылка найти не выводится

Задачи

  • Парсить HTML, и заменять тег a, заменять на отдельную вкладку.

Неопределённости

  • как сформировать ссылку, чтобы она открывалась в соседней вкладке? Поддерживает ли md такую возможность? Нет, markdown такую возможность НЕ поддерживает
  • как формировать ссылку, если наименование доверительного свойства имеет пробелы? точнее говоря, можно ли как-то пробелы заменить на +, с помощью регулярных выражений?
  • каким образом заменить каждую найденну обратную ссылку на нечто иное? Желательно с помощью регулярок.
regExp, err := regexp.Compile(`- \[ \] (.+)`)
	if err != nil {
		fmt.Println(err)
		return
	}

	result := regExp.ReplaceAll([]byte(resources), []byte(`$1[найти](https://mirocod.ru)`))

	if result == nil {
		fmt.Println("НЕ Найдено")
	} else {
		fmt.Println(string(result))
	}
  • каким образом получить все найденные обратные ссылки? FindAllString()
  • как с помощью рег. выражений получить содержимое обратной ссылки? FindAllStringSubmatch
  • Почему НЕ выполняется миграция v212? И при этом создаётся столбец resources в таблице repository. Нужно было пересобрать исходники. Почему при этом создавался столбец resources, ума не приложу.
# Деловая цель Для того, чтобы общественные проекты могли указывать свои потребности в ресурсов/компетенций и находить доверительные свойства для себя # Критерии приёмки - [x] В проекте, в настройках, после поля "Описание", можно указывать потребности : ресурсы, в виде textarea - [x] В проекте, в настройках, после поля "Описание", можно указывать потребности: компетенции, в виде textarea - [x] Каждое доверительное свойство вводится с префиксом ```- [ ]```, например: ``` # Инструмент ### Электроинструмент - [ ] молоток - [ ] гвозди ``` - [x] В проекте, в настройках, после поля Сайт, выводить поле LocationCoordinate (как у личности) - [x] Должны выводиться вкладки "Ресурсы" и "Компетенции", при просмотре проекта, между вкладками "Описание" и "Задачи" - [x] Если поле "Ресурсы" пустое, то вкладка "Ресурсы" НЕ отображается - [x] Если поле "Компетении" пустое, то вкладка "Компетении" НЕ отображается - [x] При переходе на вкладку "Ресурсы" должны выводится сохранённые ресурсы - [x] При переходе на вкладку "Компетенции" должны выводится сохранённые компетенции - [x] При отображении ресурса возле каждого ресурса появляется возможность его поиска в виде ссылки ```[найти](https://...)``` - [x] При отображении компетенции возле каждой компетенции появляется возможность её поиска в виде ссылки ```[найти](https://...)``` - [x] При нажатии на ссылку происходит поиск нужного доверительного свойства, по возможности, в отдельной вкладке, [например](/explore/competences?tab=&q=ИТ) - [x] Если доверительное свойство найдено, то ставится галочка *[x]* и ссылка найти не выводится # Задачи - [x] Парсить HTML, и заменять тег a, заменять на отдельную вкладку. # Неопределённости - [x] как сформировать ссылку, чтобы она открывалась в соседней вкладке? Поддерживает ли md такую возможность? Нет, markdown такую возможность НЕ поддерживает - [x] как формировать ссылку, если наименование доверительного свойства имеет пробелы? точнее говоря, можно ли как-то пробелы заменить на +, с помощью регулярных выражений? - [x] каким образом заменить каждую найденну обратную ссылку на нечто иное? Желательно с помощью регулярок. ``` regExp, err := regexp.Compile(`- \[ \] (.+)`) if err != nil { fmt.Println(err) return } result := regExp.ReplaceAll([]byte(resources), []byte(`$1[найти](https://mirocod.ru)`)) if result == nil { fmt.Println("НЕ Найдено") } else { fmt.Println(string(result)) } ``` - [x] каким образом получить все найденные обратные ссылки? FindAllString() - [x] как с помощью рег. выражений получить содержимое обратной ссылки? FindAllStringSubmatch - [x] Почему НЕ выполняется миграция v212? И при этом создаётся столбец resources в таблице repository. Нужно было пересобрать исходники. Почему при этом создавался столбец resources, ума не приложу.
redex2000 added the
С: Сложно
Тип: Новый функционал
П: Высокий
labels 2 years ago
redex2000 added the due date 2022-08-31 2 years ago
redex2000 added the
Тип: MVP
label 2 years ago
Bezborodov issues.parent.added_parent%!(EXTRA template.HTML=2 years ago)
redex2000 removed the due date 2022-08-31 2 years ago
redex2000 changed title from Реализовать вариант использования "Инициирование проекта руководителем (все потребности найдены)" to Указывать для проекта доверительные свойства и находить подходящие личности 2 years ago
redex2000 changed title from Указывать для проекта доверительные свойства и находить подходящие личности to Указывать для проекта доверительные свойства и находить подходящие лица 2 years ago
redex2000 self-assigned this 2 years ago
redex2000 added the due date 2022-09-14 2 years ago
Poster
Owner

Реализовать вариант использования "Инициирование проекта руководителем (все потребности найдены)"

См. описание термина Руководитель

  • Руководитель инициирует проект.
  • Выделяет потребности проекта (в виде доверительных свойств).
  • Далее запрашивает направление деятельности (издатель) найти потребности.
  • Система оповещает подписчиков (лица, которые подписаны на проект).
  • Самое простое, система говорит, у вас есть доверительное свойство, вы готовы предоставить его в этот проект?
Реализовать вариант использования "Инициирование проекта руководителем (все потребности найдены)" См. описание термина [Руководитель](https://git.mirocod.ru/platform/DocPlatform/wiki/Руководитель) * Руководитель инициирует проект. * Выделяет потребности проекта (в виде доверительных свойств). * Далее запрашивает направление деятельности (издатель) найти потребности. * Система оповещает подписчиков (лица, которые подписаны на проект). * Самое простое, система говорит, у вас есть доверительное свойство, вы готовы предоставить его в этот проект?
Poster
Owner
resources := "# Инструмент\n### Электроинструмент\n- [ ] молоток\n- [ ] гвозди"

	regExp, err := regexp.Compile(`- \[ \] (.+)`)
	if err != nil {
		fmt.Println(err)
		return
	}

	foundByteSlices := regExp.FindAllStringSubmatch(resources, -1)

	if foundByteSlices == nil {
		fmt.Println("НЕ Найдено")
	} else {
		var newResources string = strings.Clone(resources)
		for _, matches := range foundByteSlices {
			newResources = strings.Replace(newResources, matches[1], "new", -1)
		}
		fmt.Println(newResources)
	}
``` resources := "# Инструмент\n### Электроинструмент\n- [ ] молоток\n- [ ] гвозди" regExp, err := regexp.Compile(`- \[ \] (.+)`) if err != nil { fmt.Println(err) return } foundByteSlices := regExp.FindAllStringSubmatch(resources, -1) if foundByteSlices == nil { fmt.Println("НЕ Найдено") } else { var newResources string = strings.Clone(resources) for _, matches := range foundByteSlices { newResources = strings.Replace(newResources, matches[1], "new", -1) } fmt.Println(newResources) } ```
redex2000 closed this issue 2 years ago
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date

2022-09-14

issues.parent.blocked_by_short
Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.