Préchauffez le four à 150 °C (th. 5). Lavez, épongez et coupez le poisson en tronçons épais. Émincez le citron confit en éliminant les pépins. Pressez le citron.
Lavez et ciselez la coriandre. Mettez le poisson dans un plat avec l'huile, le jus du citron, le citron confit, la coriandre, les piments, le cumin, le safran, du sel et du poivre. Enrobez le poisson de sauce.
Pelez et émincez les oignons. Pelez et écrasez les gousses d'ail. Pelez, épépinez et concassez les tomates. Lavez, équeutez et coupez les poivrons en lanières en éliminant les graines et les côtes blanches. Épluchez, lavez et coupez les pommes de terre en tranches épaisses.
Dans le bas d'un tajine, faites un lit avec la moitié des rondelles d'oignons et disposez-y le poisson et sa sauce. Ajoutez les pommes de terre, les tomates et les poivrons. Recouvrez du reste d'oignon. Mouillez avec 25 cl d'eau. Recouvrez d'une feuille de papier aluminium.
Enfournez à mi-hauteur et laissez cuire 1 h 30 sans le couvercle. Si vous préférez faire cuire le tajine sur la cuisinière, posez le couvercle, faites cuire pendant 45 min sur feu très doux et terminez la cuisson à découvert.
Pour servir, retirez l'aluminium et posez son couvercle sur le tajine pour ne le retirer qu'à table.