Locality: Get hominin skeletal remains value via function on write, refactor it in frontend

This commit is contained in:
ShootingStar91
2024-08-30 14:47:28 +03:00
parent 957d5d6a76
commit 00bf1e4183
3 changed files with 21 additions and 15 deletions
+3
View File
@@ -2,6 +2,7 @@ import { EditDataType, LocalityDetailsType, Reference } from '../../../../fronte
import { NOW_DB_NAME } from '../../utils/config'
import { WriteHandler } from '../writeOperations/writeHandler'
import { getFieldsOfTables } from '../../utils/db'
import { getHomininSkeletalRemains } from '../../../../frontend/src/types'
export const writeLocality = async (
locality: EditDataType<LocalityDetailsType>,
@@ -25,6 +26,8 @@ export const writeLocality = async (
type: locality.lid ? 'update' : 'add',
})
locality.hominin_skeletal_remains = getHomininSkeletalRemains(locality)
try {
await writeHandler.start()
@@ -2,6 +2,7 @@ import { LocalityDetailsType } from '@/backendTypes'
import { emptyOption } from '@/components/DetailView/common/misc'
import { ArrayFrame } from '@/components/DetailView/common/tabLayoutHelpers'
import { useDetailContext } from '@/components/DetailView/Context/DetailContext'
import { getHomininSkeletalRemains } from '@/types'
export const ArchaeologyTab = () => {
const { dropdown, radioSelection, data } = useDetailContext<LocalityDetailsType>()
@@ -41,21 +42,8 @@ export const ArchaeologyTab = () => {
{ display: 'Tabun B', value: 'tabun_b' },
]
const hominins = [
'sahelanthropus',
'orrorin',
'ardipithecus',
'kenyanthropus',
'australopithecus',
'paranthropus',
'homo',
]
const archaeology = [
[
'Hominin skeletal remains',
data.now_ls.find(({ com_species }) => hominins.includes(com_species.genus_name.toLowerCase())) ? 'Yes' : 'No',
],
['Hominin skeletal remains', getHomininSkeletalRemains(data) ? 'Yes' : 'No'],
[
'Stone tool cut marks on bones',
radioSelection(
+16 -1
View File
@@ -8,7 +8,7 @@ export enum Role {
ReadOnly = 7,
}
import { LocalityDetailsType } from '../src/backendTypes'
import { EditDataType, LocalityDetailsType } from '../src/backendTypes'
export const calculateMeanHypsodonty = (locality: LocalityDetailsType) => {
// Mean hypsodonty calculation has been made based on html/include/database.php line 2567 onwards
@@ -44,3 +44,18 @@ export const calculateMeanHypsodonty = (locality: LocalityDetailsType) => {
const meanHypsodonty = species.length > 0 ? sum / (species.length * 1.0) : 0.0
return parseFloat((Math.floor(meanHypsodonty * 100) / 100).toFixed(2))
}
const hominins = [
'sahelanthropus',
'orrorin',
'ardipithecus',
'kenyanthropus',
'australopithecus',
'paranthropus',
'homo',
]
export const getHomininSkeletalRemains = (locality: EditDataType<LocalityDetailsType>) =>
!!locality.now_ls.find(
({ com_species }) => com_species?.genus_name && hominins.includes(com_species.genus_name.toLowerCase())
)